Directory: | ./ |
---|---|
File: | autotests/client/subsurface.cpp |
Date: | 2024-01-22 17:25:27 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 902 | 903 | 99.9% |
Branches: | 1955 | 3992 | 49.0% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | /******************************************************************** | ||
2 | Copyright 2014 Martin Gräßlin <mgraesslin@kde.org> | ||
3 | |||
4 | This library is free software; you can redistribute it and/or | ||
5 | modify it under the terms of the GNU Lesser General Public | ||
6 | License as published by the Free Software Foundation; either | ||
7 | version 2.1 of the License, or (at your option) version 3, or any | ||
8 | later version accepted by the membership of KDE e.V. (or its | ||
9 | successor approved by the membership of KDE e.V.), which shall | ||
10 | act as a proxy defined in Section 6 of version 3 of the license. | ||
11 | |||
12 | This library is distributed in the hope that it will be useful, | ||
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
15 | Lesser General Public License for more details. | ||
16 | |||
17 | You should have received a copy of the GNU Lesser General Public | ||
18 | License along with this library. If not, see <http://www.gnu.org/licenses/>. | ||
19 | *********************************************************************/ | ||
20 | #include <QtTest> | ||
21 | |||
22 | #include "../../src/client/compositor.h" | ||
23 | #include "../../src/client/connection_thread.h" | ||
24 | #include "../../src/client/event_queue.h" | ||
25 | #include "../../src/client/region.h" | ||
26 | #include "../../src/client/registry.h" | ||
27 | #include "../../src/client/shm_pool.h" | ||
28 | #include "../../src/client/subcompositor.h" | ||
29 | #include "../../src/client/subsurface.h" | ||
30 | #include "../../src/client/surface.h" | ||
31 | |||
32 | #include "../../server/buffer.h" | ||
33 | #include "../../server/compositor.h" | ||
34 | #include "../../server/display.h" | ||
35 | #include "../../server/subcompositor.h" | ||
36 | #include "../../server/surface.h" | ||
37 | |||
38 | #include "../../tests/globals.h" | ||
39 | #include "../../tests/helpers.h" | ||
40 | |||
41 | #include <wayland-client.h> | ||
42 | |||
43 | class TestSubsurface : public QObject | ||
44 | { | ||
45 | Q_OBJECT | ||
46 | public: | ||
47 | explicit TestSubsurface(QObject* parent = nullptr); | ||
48 | private Q_SLOTS: | ||
49 | void init(); | ||
50 | void cleanup(); | ||
51 | |||
52 | void testCreate(); | ||
53 | void testMode(); | ||
54 | void testPosition(); | ||
55 | void testPlaceAbove(); | ||
56 | void testPlaceBelow(); | ||
57 | void testDestroy(); | ||
58 | void testCast(); | ||
59 | void testSyncMode(); | ||
60 | void testDeSyncMode(); | ||
61 | void testMainSurfaceFromTree(); | ||
62 | void testRemoveSurface(); | ||
63 | void testMappingOfSurfaceTree(); | ||
64 | void testSurfaceAt(); | ||
65 | void testDestroyAttachedBuffer(); | ||
66 | void testDestroyParentSurface(); | ||
67 | |||
68 | private: | ||
69 | 1 | struct { | |
70 | std::unique_ptr<Wrapland::Server::Display> display; | ||
71 | Wrapland::Server::globals globals; | ||
72 | } server; | ||
73 | |||
74 | Wrapland::Client::ConnectionThread* m_connection; | ||
75 | Wrapland::Client::Compositor* m_compositor; | ||
76 | Wrapland::Client::ShmPool* m_shm; | ||
77 | Wrapland::Client::SubCompositor* m_subCompositor; | ||
78 | Wrapland::Client::EventQueue* m_queue; | ||
79 | QThread* m_thread; | ||
80 | }; | ||
81 | |||
82 | constexpr auto socket_name{"wrapland-test-wayland-subsurface-0"}; | ||
83 | |||
84 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | TestSubsurface::TestSubsurface(QObject* parent) |
85 | 1 | : QObject(parent) | |
86 | 1 | , m_connection(nullptr) | |
87 | 1 | , m_compositor(nullptr) | |
88 | 1 | , m_shm(nullptr) | |
89 | 1 | , m_subCompositor(nullptr) | |
90 | 1 | , m_queue(nullptr) | |
91 | 1 | , m_thread(nullptr) | |
92 | 1 | { | |
93 | 1 | } | |
94 | |||
95 | 15 | void TestSubsurface::init() | |
96 | { | ||
97 | 15 | qRegisterMetaType<Wrapland::Server::Surface*>(); | |
98 | |||
99 | 15 | server.display = std::make_unique<Wrapland::Server::Display>(); | |
100 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | server.display->set_socket_name(std::string(socket_name)); |
101 | 15 | server.display->start(); | |
102 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | QVERIFY(server.display->running()); |
103 | |||
104 | 15 | server.display->createShm(); | |
105 | |||
106 | // setup connection | ||
107 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_connection = new Wrapland::Client::ConnectionThread; |
108 | 15 | QSignalSpy connectedSpy(m_connection, &Wrapland::Client::ConnectionThread::establishedChanged); | |
109 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | m_connection->setSocketName(socket_name); |
110 | |||
111 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | m_thread = new QThread(this); |
112 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_connection->moveToThread(m_thread); |
113 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_thread->start(); |
114 | |||
115 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_connection->establishConnection(); |
116 |
6/12✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 15 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 15 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 15 times.
|
15 | QVERIFY(connectedSpy.count() || connectedSpy.wait()); |
117 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 15 times.
|
15 | QCOMPARE(connectedSpy.count(), 1); |
118 | |||
119 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | m_queue = new Wrapland::Client::EventQueue(this); |
120 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(!m_queue->isValid()); |
121 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_queue->setup(m_connection); |
122 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(m_queue->isValid()); |
123 | |||
124 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | Wrapland::Client::Registry registry; |
125 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | QSignalSpy compositorSpy(®istry, SIGNAL(compositorAnnounced(quint32, quint32))); |
126 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(compositorSpy.isValid()); |
127 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | QSignalSpy subCompositorSpy(®istry, SIGNAL(subCompositorAnnounced(quint32, quint32))); |
128 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(subCompositorSpy.isValid()); |
129 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(!registry.eventQueue()); |
130 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | registry.setEventQueue(m_queue); |
131 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QCOMPARE(registry.eventQueue(), m_queue); |
132 |
2/4✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
|
15 | registry.create(m_connection->display()); |
133 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(registry.isValid()); |
134 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | registry.setup(); |
135 | |||
136 | 30 | server.globals.compositor | |
137 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | = std::make_unique<Wrapland::Server::Compositor>(server.display.get()); |
138 | 30 | server.globals.subcompositor | |
139 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | = std::make_unique<Wrapland::Server::Subcompositor>(server.display.get()); |
140 | |||
141 |
5/10✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 15 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 15 times.
|
15 | QVERIFY(subCompositorSpy.wait()); |
142 | 15 | m_subCompositor | |
143 |
4/8✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 15 times.
✗ Branch 7 not taken.
|
30 | = registry.createSubCompositor(subCompositorSpy.first().first().value<quint32>(), |
144 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | subCompositorSpy.first().last().value<quint32>(), |
145 | this); | ||
146 | |||
147 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | if (compositorSpy.isEmpty()) { |
148 | ✗ | QVERIFY(compositorSpy.wait()); | |
149 | } | ||
150 |
4/8✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 15 times.
✗ Branch 7 not taken.
|
30 | m_compositor = registry.createCompositor(compositorSpy.first().first().value<quint32>(), |
151 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | compositorSpy.first().last().value<quint32>(), |
152 | this); | ||
153 | |||
154 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | m_shm = registry.createShmPool( |
155 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | registry.interface(Wrapland::Client::Registry::Interface::Shm).name, |
156 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | registry.interface(Wrapland::Client::Registry::Interface::Shm).version, |
157 | this); | ||
158 |
3/6✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 15 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
|
15 | QVERIFY(m_shm->isValid()); |
159 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | } |
160 | |||
161 | 15 | void TestSubsurface::cleanup() | |
162 | { | ||
163 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 14 times.
|
15 | if (m_shm) { |
164 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 14 times.
|
14 | delete m_shm; |
165 | 14 | m_shm = nullptr; | |
166 | 14 | } | |
167 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | if (m_subCompositor) { |
168 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | delete m_subCompositor; |
169 | 15 | m_subCompositor = nullptr; | |
170 | 15 | } | |
171 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | if (m_compositor) { |
172 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | delete m_compositor; |
173 | 15 | m_compositor = nullptr; | |
174 | 15 | } | |
175 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | if (m_queue) { |
176 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | delete m_queue; |
177 | 15 | m_queue = nullptr; | |
178 | 15 | } | |
179 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | if (m_thread) { |
180 | 15 | m_thread->quit(); | |
181 | 15 | m_thread->wait(); | |
182 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | delete m_thread; |
183 | 15 | m_thread = nullptr; | |
184 | 15 | } | |
185 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 15 times.
|
15 | delete m_connection; |
186 | 15 | m_connection = nullptr; | |
187 | |||
188 |
1/2✓ Branch 0 taken 15 times.
✗ Branch 1 not taken.
|
15 | server = {}; |
189 | 15 | } | |
190 | |||
191 | 1 | void TestSubsurface::testCreate() | |
192 | { | ||
193 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
194 | &Wrapland::Server::Compositor::surfaceCreated); | ||
195 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
196 | |||
197 | // create two Surfaces | ||
198 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); |
199 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
200 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto serverSurface = surfaceCreatedSpy.first().first().value<Wrapland::Server::Surface*>(); |
201 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
202 | |||
203 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surfaceCreatedSpy.clear(); |
204 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
205 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
206 | 1 | auto serverParentSurface | |
207 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.first().first().value<Wrapland::Server::Surface*>(); |
208 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverParentSurface); |
209 | |||
210 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceCreatedSpy(server.globals.subcompositor.get(), |
211 | &Wrapland::Server::Subcompositor::subsurfaceCreated); | ||
212 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceCreatedSpy.isValid()); |
213 | |||
214 | // create subsurface for surface of parent | ||
215 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
216 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
217 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
218 | |||
219 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
220 | |||
221 | 1 | auto serverSubsurface | |
222 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
223 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface); |
224 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(serverSubsurface->parentSurface()); |
225 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(serverSubsurface->parentSurface(), serverParentSurface); |
226 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(serverSubsurface->surface(), serverSurface); |
227 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(serverSurface->subsurface(), serverSubsurface); |
228 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(serverSubsurface->mainSurface(), serverParentSurface); |
229 | |||
230 | // children are only added after committing the surface | ||
231 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverParentSurface->state().children.size(), 0); |
232 | |||
233 | // so let's commit the surface, to apply the stacking change | ||
234 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
235 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
236 | |||
237 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
238 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverParentSurface->state().children.size(), 1); |
239 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(serverParentSurface->state().children.front(), serverSubsurface); |
240 | |||
241 | // and let's destroy it again | ||
242 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy destroyedSpy(serverSubsurface, SIGNAL(destroyed(QObject*))); |
243 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(destroyedSpy.isValid()); |
244 | 1 | subsurface.reset(); | |
245 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(destroyedSpy.wait()); |
246 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSurface->subsurface(), QPointer<Wrapland::Server::Subsurface>()); |
247 | |||
248 | // Applied immediately. | ||
249 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverParentSurface->state().children.size(), 0); |
250 | |||
251 | // Make sure committing on parent still works. | ||
252 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
253 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
254 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
255 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverParentSurface->state().children.size(), 0); |
256 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
257 | |||
258 | 1 | void TestSubsurface::testMode() | |
259 | { | ||
260 | // create two Surface | ||
261 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); | |
262 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
263 | |||
264 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceCreatedSpy(server.globals.subcompositor.get(), |
265 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | SIGNAL(subsurfaceCreated(Wrapland::Server::Subsurface*))); |
266 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceCreatedSpy.isValid()); |
267 | |||
268 | // create the Subsurface for surface of parent | ||
269 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
270 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
271 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
272 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
273 | 1 | auto serverSubsurface | |
274 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
275 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface); |
276 | |||
277 | // both client and server subsurface should be in synchronized mode | ||
278 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->mode(), Wrapland::Client::SubSurface::Mode::Synchronized); |
279 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->mode(), Wrapland::Server::Subsurface::Mode::Synchronized); |
280 | |||
281 | // verify that we can change to desynchronized | ||
282 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy modeChangedSpy(serverSubsurface, |
283 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | SIGNAL(modeChanged(Wrapland::Server::Subsurface::Mode))); |
284 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(modeChangedSpy.isValid()); |
285 | |||
286 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
287 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->mode(), Wrapland::Client::SubSurface::Mode::Desynchronized); |
288 | |||
289 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(modeChangedSpy.wait()); |
290 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(modeChangedSpy.first().first().value<Wrapland::Server::Subsurface::Mode>(), |
291 | Wrapland::Server::Subsurface::Mode::Desynchronized); | ||
292 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->mode(), Wrapland::Server::Subsurface::Mode::Desynchronized); |
293 | |||
294 | // setting the same again won't change | ||
295 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
296 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->mode(), Wrapland::Client::SubSurface::Mode::Desynchronized); |
297 | // not testing the signal, we do that after changing to synchronized | ||
298 | |||
299 | // and change back to synchronized | ||
300 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setMode(Wrapland::Client::SubSurface::Mode::Synchronized); |
301 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->mode(), Wrapland::Client::SubSurface::Mode::Synchronized); |
302 | |||
303 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(modeChangedSpy.wait()); |
304 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(modeChangedSpy.count(), 2); |
305 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(modeChangedSpy.first().first().value<Wrapland::Server::Subsurface::Mode>(), |
306 | Wrapland::Server::Subsurface::Mode::Desynchronized); | ||
307 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(modeChangedSpy.last().first().value<Wrapland::Server::Subsurface::Mode>(), |
308 | Wrapland::Server::Subsurface::Mode::Synchronized); | ||
309 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->mode(), Wrapland::Server::Subsurface::Mode::Synchronized); |
310 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
311 | |||
312 | 1 | void TestSubsurface::testPosition() | |
313 | { | ||
314 | // create two Surface | ||
315 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); | |
316 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
317 | |||
318 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceCreatedSpy(server.globals.subcompositor.get(), |
319 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | SIGNAL(subsurfaceCreated(Wrapland::Server::Subsurface*))); |
320 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceCreatedSpy.isValid()); |
321 | |||
322 | // create the Subsurface for surface of parent | ||
323 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
324 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
325 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
326 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
327 | 1 | auto serverSubsurface | |
328 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
329 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface); |
330 | |||
331 | // create a signalspy | ||
332 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy subsurfaceTreeChanged(serverSubsurface->parentSurface(), |
333 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
334 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceTreeChanged.isValid()); |
335 | |||
336 | // both client and server should have a default position | ||
337 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->position(), QPoint()); |
338 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->position(), QPoint()); |
339 | |||
340 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy positionChangedSpy(serverSubsurface, SIGNAL(positionChanged(QPoint))); |
341 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(positionChangedSpy.isValid()); |
342 | |||
343 | // changing the position should not trigger a direct update on server side | ||
344 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setPosition(QPoint(10, 20)); |
345 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->position(), QPoint(10, 20)); |
346 | // ensure it's processed on server side | ||
347 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
348 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
349 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->position(), QPoint()); |
350 | // changing once more | ||
351 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setPosition(QPoint(20, 30)); |
352 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(subsurface->position(), QPoint(20, 30)); |
353 | // ensure it's processed on server side | ||
354 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
355 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
356 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->position(), QPoint()); |
357 | |||
358 | // committing the parent surface should update the position | ||
359 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
360 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChanged.count(), 0); |
361 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(positionChangedSpy.wait()); |
362 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(positionChangedSpy.count(), 1); |
363 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(positionChangedSpy.first().first().toPoint(), QPoint(20, 30)); |
364 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(serverSubsurface->position(), QPoint(20, 30)); |
365 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChanged.count(), 0); |
366 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
367 | |||
368 | 1 | void TestSubsurface::testPlaceAbove() | |
369 | { | ||
370 | // Create needed Surfaces (one parent, three children). | ||
371 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface1(m_compositor->createSurface()); | |
372 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface2(m_compositor->createSurface()); |
373 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface3(m_compositor->createSurface()); |
374 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
375 | |||
376 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceCreatedSpy(server.globals.subcompositor.get(), |
377 | &Wrapland::Server::Subcompositor::subsurfaceCreated); | ||
378 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceCreatedSpy.isValid()); |
379 | |||
380 | // Create the Subsurfaces for surface of parent. | ||
381 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface1( | |
382 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface1.get()), |
383 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
384 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
385 | |||
386 | 1 | auto serverSubsurface1 | |
387 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
388 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface1); |
389 | |||
390 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
391 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface2( | |
392 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface2.get()), |
393 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
394 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
395 | |||
396 | 1 | auto serverSubsurface2 | |
397 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
398 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface2); |
399 | |||
400 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
401 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface3( | |
402 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface3.get()), |
403 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
404 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
405 | |||
406 | 1 | auto serverSubsurface3 | |
407 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
408 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface3); |
409 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
410 | |||
411 | // So far the stacking order should still be empty. | ||
412 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(serverSubsurface1->parentSurface()->state().children.empty()); |
413 | |||
414 | // Committing the parent should create the stacking order. | ||
415 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
416 | |||
417 | // Ensure it's processed on server side. | ||
418 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
419 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
420 | |||
421 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
422 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
423 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface2); |
424 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface3); |
425 | |||
426 | // Raising subsurface1 should place it to top of stack. | ||
427 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface1->raise(); |
428 | |||
429 | // Ensure it's processed on server side. | ||
430 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
431 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
432 | |||
433 | // But as long as parent is not committed it shouldn't change on server side. | ||
434 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
435 | |||
436 | // After commit it's changed. | ||
437 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
438 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
439 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
440 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
441 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface2); |
442 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface3); |
443 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface1); |
444 | |||
445 | // Try placing 3 above 1, should result in 2, 1, 3. | ||
446 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface3->placeAbove(QPointer<Wrapland::Client::SubSurface>(subsurface1.get())); |
447 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
448 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
449 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
450 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
451 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface2); |
452 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface1); |
453 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface3); |
454 | |||
455 | // try placing 3 above 2, should result in 2, 3, 1 | ||
456 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface3->placeAbove(QPointer<Wrapland::Client::SubSurface>(subsurface2.get())); |
457 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
458 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
459 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
460 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
461 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface2); |
462 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface3); |
463 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface1); |
464 | |||
465 | // try placing 1 above 3 - shouldn't change | ||
466 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface1->placeAbove(QPointer<Wrapland::Client::SubSurface>(subsurface3.get())); |
467 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
468 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
469 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
470 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
471 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface2); |
472 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface3); |
473 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface1); |
474 | |||
475 | // and 2 above 3 - > 3, 2, 1 | ||
476 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface2->placeAbove(QPointer<Wrapland::Client::SubSurface>(subsurface3.get())); |
477 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
478 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
479 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
480 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
481 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface3); |
482 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface2); |
483 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface1); |
484 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
485 | |||
486 | 1 | void TestSubsurface::testPlaceBelow() | |
487 | { | ||
488 | using namespace Wrapland::Server; | ||
489 | // create needed Surfaces (one parent, three client | ||
490 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface1(m_compositor->createSurface()); | |
491 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface2(m_compositor->createSurface()); |
492 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface3(m_compositor->createSurface()); |
493 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
494 | |||
495 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceCreatedSpy(server.globals.subcompositor.get(), |
496 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | SIGNAL(subsurfaceCreated(Wrapland::Server::Subsurface*))); |
497 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceCreatedSpy.isValid()); |
498 | |||
499 | // create the Subsurfaces for surface of parent | ||
500 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface1( | |
501 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface1.get()), |
502 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
503 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
504 | 1 | auto serverSubsurface1 | |
505 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
506 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface1); |
507 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
508 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface2( | |
509 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface2.get()), |
510 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
511 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
512 | 1 | auto serverSubsurface2 | |
513 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
514 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface2); |
515 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
516 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface3( | |
517 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface3.get()), |
518 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
519 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceCreatedSpy.wait()); |
520 | 1 | auto serverSubsurface3 | |
521 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = subsurfaceCreatedSpy.first().first().value<Wrapland::Server::Subsurface*>(); |
522 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSubsurface3); |
523 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceCreatedSpy.clear(); |
524 | |||
525 | // so far the stacking order should still be empty | ||
526 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(serverSubsurface1->parentSurface()->state().children.empty()); |
527 | |||
528 | // committing the parent should create the stacking order | ||
529 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
530 | // ensure it's processed on server side | ||
531 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
532 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
533 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
534 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
535 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface2); |
536 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface3); |
537 | |||
538 | // lowering subsurface3 should place it to the bottom of stack | ||
539 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface3->lower(); |
540 | // ensure it's processed on server side | ||
541 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
542 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
543 | // but as long as parent is not committed it shouldn't change on server side | ||
544 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
545 | // after commit it's changed | ||
546 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
547 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
548 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
549 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
550 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface3); |
551 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface1); |
552 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface2); |
553 | |||
554 | // place 1 below 3 -> 1, 3, 2 | ||
555 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface1->placeBelow(QPointer<Wrapland::Client::SubSurface>(subsurface3.get())); |
556 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
557 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
558 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
559 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
560 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
561 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface3); |
562 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface2); |
563 | |||
564 | // 2 below 3 -> 1, 2, 3 | ||
565 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface2->placeBelow(QPointer<Wrapland::Client::SubSurface>(subsurface3.get())); |
566 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
567 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
568 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
569 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
570 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
571 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface2); |
572 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface3); |
573 | |||
574 | // 1 below 2 -> shouldn't change | ||
575 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface1->placeBelow(QPointer<Wrapland::Client::SubSurface>(subsurface2.get())); |
576 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
577 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
578 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
579 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
580 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface1); |
581 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface2); |
582 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface3); |
583 | |||
584 | // and 3 below 1 -> 3, 1, 2 | ||
585 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | subsurface3->placeBelow(QPointer<Wrapland::Client::SubSurface>(subsurface1.get())); |
586 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
587 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | wl_display_flush(m_connection->display()); |
588 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
589 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.size(), 3); |
590 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(0), serverSubsurface3); |
591 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(1), serverSubsurface1); |
592 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
1 | QCOMPARE(serverSubsurface1->parentSurface()->state().children.at(2), serverSubsurface2); |
593 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
594 | |||
595 | 1 | void TestSubsurface::testDestroy() | |
596 | { | ||
597 | // create two Surfaces | ||
598 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); | |
599 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
600 | // create subsurface for surface of parent | ||
601 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
602 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
603 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
604 | |||
605 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
606 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
607 | 1 | m_compositor, | |
608 | 1 | &Wrapland::Client::Compositor::release); | |
609 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
610 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
611 | 1 | m_subCompositor, | |
612 | 1 | &Wrapland::Client::SubCompositor::release); | |
613 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
614 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
615 | 1 | m_shm, | |
616 | 1 | &Wrapland::Client::ShmPool::release); | |
617 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
618 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
619 | 1 | m_queue, | |
620 | 1 | &Wrapland::Client::EventQueue::release); | |
621 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
622 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
623 | 1 | surface.get(), | |
624 | 1 | &Wrapland::Client::Surface::release); | |
625 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
626 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
627 | 1 | parent.get(), | |
628 | 1 | &Wrapland::Client::Surface::release); | |
629 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
630 | &Wrapland::Client::ConnectionThread::establishedChanged, | ||
631 | 1 | subsurface.get(), | |
632 | 1 | &Wrapland::Client::SubSurface::release); | |
633 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurface->isValid()); |
634 | |||
635 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server = {}; |
636 |
18/74✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✓ Branch 68 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
|
1 | QTRY_VERIFY(!m_connection->established()); |
637 | |||
638 | // Now the pool should be destroyed. | ||
639 |
19/74✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✓ Branch 68 taken 1 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
|
1 | QTRY_VERIFY(!subsurface->isValid()); |
640 | |||
641 | // Calling destroy again should not fail. | ||
642 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->release(); |
643 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
644 | |||
645 | 1 | void TestSubsurface::testCast() | |
646 | { | ||
647 | // Create two Surfaces. | ||
648 | 1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); | |
649 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
650 | |||
651 | // Create subsurface for surface with parent. | ||
652 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
653 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
654 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
655 | |||
656 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(Wrapland::Client::SubSurface::get(*(subsurface.get())), |
657 | QPointer<Wrapland::Client::SubSurface>(subsurface.get())); | ||
658 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
659 | |||
660 | 1 | void TestSubsurface::testSyncMode() | |
661 | { | ||
662 | // this test verifies that state is only applied when the parent surface commits its pending | ||
663 | // state | ||
664 | |||
665 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
666 | &Wrapland::Server::Compositor::surfaceCreated); | ||
667 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
668 | |||
669 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); |
670 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
671 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto childSurface = surfaceCreatedSpy.first().first().value<Wrapland::Server::Surface*>(); |
672 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childSurface); |
673 | |||
674 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
675 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
676 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto parentSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
677 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(parentSurface); |
678 | |||
679 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(parentSurface, &Wrapland::Server::Surface::committed); |
680 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
681 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceTreeChangedSpy(parentSurface, |
682 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
683 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.isValid()); |
684 | |||
685 | // create subsurface for surface of parent | ||
686 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
687 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
688 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
689 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!subsurfaceTreeChangedSpy.wait(100)); |
690 | |||
691 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
692 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
693 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
694 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentSurface->state().updates & Wrapland::Server::surface_change::children); |
695 | |||
696 | // let's damage the child surface | ||
697 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy child_commit_spy(childSurface, &Wrapland::Server::Surface::committed); |
698 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(child_commit_spy.isValid()); |
699 | |||
700 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(200, 200), QImage::Format_ARGB32_Premultiplied); |
701 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::black); |
702 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | surface->attachBuffer(m_shm->createBuffer(image)); |
703 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(0, 0, 200, 200)); |
704 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(); |
705 | |||
706 | // state should be applied when the parent surface's state gets applied | ||
707 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!child_commit_spy.wait(100)); |
708 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!childSurface->state().buffer); |
709 | |||
710 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!childSurface->isMapped()); |
711 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!parentSurface->isMapped()); |
712 | |||
713 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image2(QSize(400, 400), QImage::Format_ARGB32_Premultiplied); |
714 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image2.fill(Qt::red); |
715 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | parent->attachBuffer(m_shm->createBuffer(image2)); |
716 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->damage(QRect(0, 0, 400, 400)); |
717 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(); |
718 | |||
719 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child_commit_spy.wait()); |
720 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(child_commit_spy.count(), 1); |
721 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
722 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(childSurface->state().buffer->shmImage()->createQImage(), image); |
723 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(parentSurface->state().buffer->shmImage()->createQImage(), image2); |
724 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(childSurface->isMapped()); |
725 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentSurface->isMapped()); |
726 | |||
727 | // sending frame rendered to parent should also send it to child | ||
728 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy frameRenderedSpy(surface.get(), &Wrapland::Client::Surface::frameRendered); |
729 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(frameRenderedSpy.isValid()); |
730 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->frameRendered(100); |
731 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(frameRenderedSpy.wait()); |
732 | |||
733 | // Unmapping the child is applied on parent surface commit. | ||
734 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->attachBuffer(Wrapland::Client::Buffer::Ptr()); |
735 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(); |
736 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!child_commit_spy.wait(100)); |
737 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(childSurface->state().buffer); |
738 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
739 | |||
740 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
741 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
742 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentSurface->state().updates & Wrapland::Server::surface_change::children); |
743 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!childSurface->state().buffer); |
744 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
745 | |||
746 | // Destroying the child on the other side is applied immediately. | ||
747 | 1 | subsurface.reset(); | |
748 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.wait()); |
749 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
750 | |||
751 | 1 | void TestSubsurface::testDeSyncMode() | |
752 | { | ||
753 | // this test verifies that state gets applied immediately in desync mode | ||
754 | |||
755 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
756 | &Wrapland::Server::Compositor::surfaceCreated); | ||
757 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
758 | |||
759 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> surface(m_compositor->createSurface()); |
760 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
761 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto childSurface = surfaceCreatedSpy.first().first().value<Wrapland::Server::Surface*>(); |
762 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childSurface); |
763 | |||
764 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
765 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
766 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto parentSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
767 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(parentSurface); |
768 | |||
769 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(parentSurface, &Wrapland::Server::Surface::committed); |
770 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
771 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceTreeChangedSpy(parentSurface, |
772 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
773 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.isValid()); |
774 | |||
775 | // create subsurface for surface of parent | ||
776 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> subsurface( | |
777 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | m_subCompositor->createSubSurface(QPointer<Wrapland::Client::Surface>(surface.get()), |
778 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPointer<Wrapland::Client::Surface>(parent.get()))); |
779 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!subsurfaceTreeChangedSpy.wait(100)); |
780 | |||
781 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
782 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
783 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
784 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentSurface->state().updates & Wrapland::Server::surface_change::children); |
785 | |||
786 | // let's damage the child surface | ||
787 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy child_commit_spy(childSurface, &Wrapland::Server::Surface::committed); |
788 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(child_commit_spy.isValid()); |
789 | |||
790 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(200, 200), QImage::Format_ARGB32_Premultiplied); |
791 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::black); |
792 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | surface->attachBuffer(m_shm->createBuffer(image)); |
793 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(0, 0, 200, 200)); |
794 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
795 | |||
796 | // state should be applied when the parent surface's state gets applied or when the subsurface | ||
797 | // switches to desync | ||
798 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!child_commit_spy.wait(100)); |
799 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!childSurface->isMapped()); |
800 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!parentSurface->isMapped()); |
801 | |||
802 | // setting to desync should apply the state directly | ||
803 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(child_commit_spy.isEmpty()); |
804 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurface->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
805 | |||
806 |
6/12✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
|
1 | QVERIFY(child_commit_spy.count() || child_commit_spy.wait()); |
807 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(child_commit_spy.count(), 1); |
808 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
809 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(childSurface->state().buffer->shmImage()->createQImage(), image); |
810 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!childSurface->isMapped()); |
811 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(!parentSurface->isMapped()); |
812 | |||
813 | // and damaging again, should directly be applied | ||
814 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
815 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | surface->attachBuffer(m_shm->createBuffer(image)); |
816 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->damage(QRect(0, 0, 200, 200)); |
817 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
818 | |||
819 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child_commit_spy.wait()); |
820 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(child_commit_spy.count(), 2); |
821 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
822 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(childSurface->state().buffer->shmImage()->createQImage(), image); |
823 | |||
824 | // Destroying the child is applied immediately. | ||
825 | 1 | surface.reset(); | |
826 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.wait()); |
827 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
828 | |||
829 | 1 | void TestSubsurface::testMainSurfaceFromTree() | |
830 | { | ||
831 | // this test verifies that in a tree of surfaces every surface has the same main surface | ||
832 | using namespace Wrapland::Client; | ||
833 | using namespace Wrapland::Server; | ||
834 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
835 | &Wrapland::Server::Compositor::surfaceCreated); | ||
836 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
837 | |||
838 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parentSurface(m_compositor->createSurface()); |
839 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
840 | |||
841 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto parentServerSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
842 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(parentServerSurface); |
843 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel1Surface(m_compositor->createSurface()); |
844 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
845 | |||
846 | 1 | auto childLevel1ServerSurface | |
847 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
848 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childLevel1ServerSurface); |
849 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel2Surface(m_compositor->createSurface()); |
850 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
851 | |||
852 | 1 | auto childLevel2ServerSurface | |
853 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
854 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childLevel2ServerSurface); |
855 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel3Surface(m_compositor->createSurface()); |
856 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
857 | |||
858 | 1 | auto childLevel3ServerSurface | |
859 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
860 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childLevel3ServerSurface); |
861 | |||
862 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(parentServerSurface, &Wrapland::Server::Surface::committed); |
863 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
864 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceTreeChangedSpy(parentServerSurface, |
865 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
866 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.isValid()); |
867 | |||
868 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto* sub1 = m_subCompositor->createSubSurface(childLevel1Surface.get(), parentSurface.get()); |
869 | 1 | auto* sub2 | |
870 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = m_subCompositor->createSubSurface(childLevel2Surface.get(), childLevel1Surface.get()); |
871 | 1 | auto* sub3 | |
872 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = m_subCompositor->createSubSurface(childLevel3Surface.get(), childLevel2Surface.get()); |
873 | |||
874 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
875 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel1Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
876 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->commit(Wrapland::Client::Surface::CommitFlag::None); |
877 | |||
878 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
879 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
880 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentServerSurface->state().updates & Wrapland::Server::surface_change::children); |
881 | |||
882 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(parentServerSurface->state().children.size(), 1); |
883 | |||
884 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto child = parentServerSurface->state().children.front(); |
885 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(child->parentSurface(), parentServerSurface); |
886 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(child->mainSurface(), parentServerSurface); |
887 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child->surface()->state().children.size(), 1); |
888 | |||
889 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | auto child2 = child->surface()->state().children.front(); |
890 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QCOMPARE(child2->parentSurface(), child->surface()); |
891 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(child2->mainSurface(), parentServerSurface); |
892 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child2->surface()->state().children.size(), 1); |
893 | |||
894 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | auto child3 = child2->surface()->state().children.front(); |
895 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QCOMPARE(child3->parentSurface(), child2->surface()); |
896 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QCOMPARE(child3->mainSurface(), parentServerSurface); |
897 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child3->surface()->state().children.size(), 0); |
898 | |||
899 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub1; |
900 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub2; |
901 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub3; |
902 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
903 | |||
904 | 1 | void TestSubsurface::testRemoveSurface() | |
905 | { | ||
906 | // this test verifies that removing the surface also removes the sub-surface from the parent | ||
907 | using namespace Wrapland::Client; | ||
908 | using namespace Wrapland::Server; | ||
909 | |||
910 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
911 | &Wrapland::Server::Compositor::surfaceCreated); | ||
912 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
913 | |||
914 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parentSurface(m_compositor->createSurface()); |
915 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
916 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto parentServerSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
917 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(parentServerSurface); |
918 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childSurface(m_compositor->createSurface()); |
919 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
920 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto childServerSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
921 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childServerSurface); |
922 | |||
923 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(parentServerSurface, &Wrapland::Server::Surface::committed); |
924 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
925 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceTreeChangedSpy(parentServerSurface, |
926 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
927 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.isValid()); |
928 | |||
929 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> sub( | |
930 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | m_subCompositor->createSubSurface(childSurface.get(), parentSurface.get())); |
931 | |||
932 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->commit(Wrapland::Client::Surface::CommitFlag::None); |
933 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
934 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
935 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentServerSurface->state().updates & Wrapland::Server::surface_change::children); |
936 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(parentServerSurface->state().children.size(), 1); |
937 | |||
938 | // destroy surface, takes place immediately | ||
939 | 1 | childSurface.reset(); | |
940 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.wait()); |
941 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(parentServerSurface->state().children.size(), 0); |
942 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
943 | |||
944 | 1 | void TestSubsurface::testMappingOfSurfaceTree() | |
945 | { | ||
946 | // this test verifies mapping and unmapping of a sub-surface tree | ||
947 | using namespace Wrapland::Client; | ||
948 | using namespace Wrapland::Server; | ||
949 | 1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), | |
950 | &Wrapland::Server::Compositor::surfaceCreated); | ||
951 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(surfaceCreatedSpy.isValid()); |
952 | |||
953 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parentSurface(m_compositor->createSurface()); |
954 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
955 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto parentServerSurface = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
956 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(parentServerSurface); |
957 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel1Surface(m_compositor->createSurface()); |
958 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
959 | 1 | auto childLevel1ServerSurface | |
960 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
961 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(childLevel1ServerSurface); |
962 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel2Surface(m_compositor->createSurface()); |
963 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
964 | 1 | auto childLevel2ServerSurface | |
965 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
966 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childLevel2ServerSurface); |
967 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> childLevel3Surface(m_compositor->createSurface()); |
968 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(surfaceCreatedSpy.wait()); |
969 | 1 | auto childLevel3ServerSurface | |
970 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = surfaceCreatedSpy.last().first().value<Wrapland::Server::Surface*>(); |
971 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(childLevel3ServerSurface); |
972 | |||
973 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(parentServerSurface, &Wrapland::Server::Surface::committed); |
974 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
975 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy subsurfaceTreeChangedSpy(parentServerSurface, |
976 | &Wrapland::Server::Surface::subsurfaceTreeChanged); | ||
977 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(subsurfaceTreeChangedSpy.isValid()); |
978 | |||
979 | 1 | auto subsurfaceLevel1 | |
980 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = m_subCompositor->createSubSurface(childLevel1Surface.get(), parentSurface.get()); |
981 | 1 | auto subsurfaceLevel2 | |
982 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = m_subCompositor->createSubSurface(childLevel2Surface.get(), childLevel1Surface.get()); |
983 | 1 | auto subsurfaceLevel3 | |
984 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = m_subCompositor->createSubSurface(childLevel3Surface.get(), childLevel2Surface.get()); |
985 | |||
986 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel3Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
987 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
988 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel1Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
989 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->commit(Wrapland::Client::Surface::CommitFlag::None); |
990 | |||
991 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
992 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(subsurfaceTreeChangedSpy.count(), 0); |
993 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(parentServerSurface->state().updates & Wrapland::Server::surface_change::children); |
994 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(parentServerSurface->state().children.size(), 1); |
995 | |||
996 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(parentServerSurface->state().children.size(), 1); |
997 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto child = parentServerSurface->state().children.front(); |
998 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child->surface()->state().children.size(), 1); |
999 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | auto child2 = child->surface()->state().children.front(); |
1000 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child2->surface()->state().children.size(), 1); |
1001 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | auto child3 = child2->surface()->state().children.front(); |
1002 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child3->parentSurface(), child2->surface()); |
1003 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(child3->mainSurface(), parentServerSurface); |
1004 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(child3->surface()->state().children.size(), 0); |
1005 | |||
1006 | // So far no surface is mapped. | ||
1007 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!parentServerSurface->isMapped()); |
1008 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(!child->surface()->isMapped()); |
1009 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(!child2->surface()->isMapped()); |
1010 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(!child3->surface()->isMapped()); |
1011 | |||
1012 | // First set all subsurfaces to desync to simplify. | ||
1013 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceLevel1->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1014 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceLevel2->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1015 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | subsurfaceLevel3->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1016 | |||
1017 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(200, 200), QImage::Format_ARGB32_Premultiplied); |
1018 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::black); |
1019 | |||
1020 | // Attach a buffer to the first child. Should not map. | ||
1021 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy child1_commit_spy(child->surface(), &Wrapland::Server::Surface::committed); |
1022 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(child1_commit_spy.isValid()); |
1023 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | childLevel1Surface->attachBuffer(m_shm->createBuffer(image)); |
1024 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel1Surface->damage(QRect(0, 0, 200, 200)); |
1025 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel1Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
1026 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child1_commit_spy.wait()); |
1027 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(child->surface()->state().buffer); |
1028 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(!child->surface()->isMapped()); |
1029 | |||
1030 | // Attach a buffer to the third child. Should not map. | ||
1031 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy child3_commit_spy(child3->surface(), &Wrapland::Server::Surface::committed); |
1032 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(child3_commit_spy.isValid()); |
1033 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | childLevel3Surface->attachBuffer(m_shm->createBuffer(image)); |
1034 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel3Surface->damage(QRect(0, 0, 200, 200)); |
1035 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel3Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
1036 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child3_commit_spy.wait()); |
1037 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(child3->surface()->state().buffer); |
1038 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(!child3->surface()->isMapped()); |
1039 | |||
1040 | // Map the top level. | ||
1041 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(parentServerSurface, &Wrapland::Server::Surface::committed); |
1042 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
1043 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | parentSurface->attachBuffer(m_shm->createBuffer(image)); |
1044 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->damage(QRect(0, 0, 200, 200)); |
1045 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentSurface->commit(Wrapland::Client::Surface::CommitFlag::None); |
1046 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
1047 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentServerSurface->isMapped()); |
1048 | |||
1049 | // First child should now be mapped automatically too but not second or third one. | ||
1050 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(child->surface()->isMapped()); |
1051 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(!child2->surface()->isMapped()); |
1052 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(!child3->surface()->isMapped()); |
1053 | |||
1054 | // Now map the second level. This should automatically also map the thrid one. | ||
1055 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy child2_commit_spy(child2->surface(), &Wrapland::Server::Surface::committed); |
1056 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(child2_commit_spy.isValid()); |
1057 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | childLevel2Surface->attachBuffer(m_shm->createBuffer(image)); |
1058 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->damage(QRect(0, 0, 200, 200)); |
1059 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
1060 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child2_commit_spy.wait()); |
1061 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentServerSurface->isMapped()); |
1062 | |||
1063 | // Everything is mapped now. | ||
1064 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentServerSurface->isMapped()); |
1065 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(child->surface()->isMapped()); |
1066 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(child2->surface()->isMapped()); |
1067 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QVERIFY(child3->surface()->isMapped()); |
1068 | |||
1069 | // Unmapping a parent should unmap the complete tree. | ||
1070 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->attachBuffer(Wrapland::Client::Buffer::Ptr()); |
1071 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->damage(QRect(0, 0, 200, 200)); |
1072 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childLevel2Surface->commit(Wrapland::Client::Surface::CommitFlag::None); |
1073 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(child2_commit_spy.wait()); |
1074 | |||
1075 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentServerSurface->isMapped()); |
1076 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(child->surface()->isMapped()); |
1077 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(!child2->surface()->isMapped()); |
1078 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QVERIFY(!child3->surface()->isMapped()); |
1079 | |||
1080 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | delete subsurfaceLevel1; |
1081 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | delete subsurfaceLevel2; |
1082 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | delete subsurfaceLevel3; |
1083 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1084 | |||
1085 | 1 | void TestSubsurface::testSurfaceAt() | |
1086 | { | ||
1087 | // This test verifies that the correct surface is picked in a subsurface tree. | ||
1088 | // | ||
1089 | // ----------------------------- | ||
1090 | // | | | ||
1091 | // | grandchild1(50x50) | | ||
1092 | // | | | ||
1093 | // | | | ||
1094 | // | |----------------------------------------- | ||
1095 | // | | | | | ||
1096 | // | | | | | ||
1097 | // | | | | | ||
1098 | // | | | | | ||
1099 | // ----------------------------- | | | ||
1100 | // | | | | ||
1101 | // | child1(75x75) | | | ||
1102 | // | | | | ||
1103 | // | | | | ||
1104 | // | ------------------------------------------ | ||
1105 | // | | | | ||
1106 | // | | child2(75x75) | | ||
1107 | // | | | | ||
1108 | // |----------------------------| -----------------------------| | ||
1109 | // | | | | | | ||
1110 | // | | | input1 | grandhchild2 | | ||
1111 | // | parent(100x100) | | (25x25) | (50x50) | | ||
1112 | // | | | | | | ||
1113 | // ----------------------------| |--------------+--------------| | ||
1114 | // | | | | | ||
1115 | // | | | input2 | | ||
1116 | // | | | (25x25) | | ||
1117 | // | | | | | ||
1118 | // ------------------------------------------ | ||
1119 | // | ||
1120 | |||
1121 | 1 | QImage parentimage(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); | |
1122 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parentimage.fill(Qt::red); |
1123 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage childImage(QSize(75, 75), QImage::Format_ARGB32_Premultiplied); |
1124 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childImage.fill(Qt::green); |
1125 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage grandchildImage(QSize(50, 50), QImage::Format_ARGB32_Premultiplied); |
1126 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | childImage.fill(Qt::blue); |
1127 | |||
1128 | // First create a parent surface and map it. | ||
1129 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), |
1130 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1131 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.isValid()); |
1132 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
1133 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | parent->attachBuffer(m_shm->createBuffer(parentimage)); |
1134 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->damage(QRect(0, 0, 100, 100)); |
1135 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
1136 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1137 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto serverParent = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1138 | |||
1139 | // Create two child subsurfaces, just added to the parent this is to simulate the behavior of | ||
1140 | // QtWayland (might have changed in the meantime). | ||
1141 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> child1(m_compositor->createSurface()); |
1142 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1143 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto serverChild1 = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1144 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverChild1); |
1145 | |||
1146 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> child2(m_compositor->createSurface()); |
1147 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1148 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto serverChild2 = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1149 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(serverChild2); |
1150 | |||
1151 | // Create the subsurfaces for the children. | ||
1152 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> child1Sub( | |
1153 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | m_subCompositor->createSubSurface(child1.get(), parent.get())); |
1154 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child1Sub->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1155 | |||
1156 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | child1->attachBuffer(m_shm->createBuffer(childImage)); |
1157 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child1->damage(QRect(0, 0, 75, 75)); |
1158 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child1->commit(Wrapland::Client::Surface::CommitFlag::None); |
1159 | |||
1160 | // Note: child2Sub is initially above child1Sub since it is added after. | ||
1161 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> child2Sub( | |
1162 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | m_subCompositor->createSubSurface(child2.get(), parent.get())); |
1163 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child2Sub->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1164 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child2Sub->setPosition(QPoint(50, 50)); |
1165 | |||
1166 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | child2->attachBuffer(m_shm->createBuffer(childImage)); |
1167 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child2->damage(QRect(0, 0, 75, 75)); |
1168 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child2->commit(Wrapland::Client::Surface::CommitFlag::None); |
1169 | |||
1170 | // Each of the children gets a child. | ||
1171 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> grandchild1(m_compositor->createSurface()); |
1172 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1173 | 1 | auto serverGrandchild1 | |
1174 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1175 | |||
1176 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> grandchild2(m_compositor->createSurface()); |
1177 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1178 | 1 | auto serverGrandchild2 | |
1179 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1180 | |||
1181 | // Create subsurfaces for the grandchildren. | ||
1182 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> grandchild1Sub( | |
1183 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | m_subCompositor->createSubSurface(grandchild1.get(), child1.get())); |
1184 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild1Sub->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1185 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild1Sub->setPosition(QPoint(-25, -25)); |
1186 | |||
1187 | 1 | std::unique_ptr<Wrapland::Client::SubSurface> grandchild2Sub( | |
1188 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | m_subCompositor->createSubSurface(grandchild2.get(), child2.get())); |
1189 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild2Sub->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1190 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild2Sub->setPosition(QPoint(25, 25)); |
1191 | |||
1192 | // Now let's render both grandchildren. | ||
1193 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grandchild1->attachBuffer(m_shm->createBuffer(grandchildImage)); |
1194 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild1->damage(QRect(0, 0, 50, 50)); |
1195 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild1->commit(Wrapland::Client::Surface::CommitFlag::None); |
1196 | |||
1197 | // Second grandchild's input region is subdivided into quadrants, with input mask on the top | ||
1198 | // left and bottom right. | ||
1199 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QRegion region; |
1200 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | region += QRect(0, 0, 25, 25); |
1201 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | region += QRect(25, 25, 25, 25); |
1202 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grandchild2->setInputRegion(m_compositor->createRegion(region).get()); |
1203 | |||
1204 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grandchild2->attachBuffer(m_shm->createBuffer(grandchildImage)); |
1205 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild2->damage(QRect(0, 0, 50, 50)); |
1206 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandchild2->commit(Wrapland::Client::Surface::CommitFlag::None); |
1207 | |||
1208 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parent_commit_spy(serverParent, &Wrapland::Server::Surface::committed); |
1209 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parent_commit_spy.isValid()); |
1210 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
1211 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parent_commit_spy.wait()); |
1212 | |||
1213 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QCOMPARE(serverChild1->subsurface()->parentSurface(), serverParent); |
1214 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverChild2->subsurface()->parentSurface(), serverParent); |
1215 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QCOMPARE(serverGrandchild1->subsurface()->parentSurface(), serverChild1); |
1216 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverGrandchild2->subsurface()->parentSurface(), serverChild2); |
1217 | |||
1218 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(serverChild1->isMapped()); |
1219 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(serverChild2->isMapped()); |
1220 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(serverGrandchild1->isMapped()); |
1221 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(serverGrandchild2->isMapped()); |
1222 | |||
1223 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverParent, &Wrapland::Server::Surface::committed); |
1224 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(commit_spy.isValid()); |
1225 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | parent->commit(Wrapland::Client::Surface::CommitFlag::None); |
1226 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
1227 | |||
1228 | namespace WST = Wrapland::Server::Test; | ||
1229 | |||
1230 | // Now test some positions. | ||
1231 | // Around top-left. | ||
1232 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::surface_at(serverParent, QPointF(-26, -25))); |
1233 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::surface_at(serverParent, QPointF(-25, -26))); |
1234 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(-25, -25)), serverGrandchild1); |
1235 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(0, 0)), serverGrandchild1); |
1236 | |||
1237 | // Around middle. | ||
1238 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(49, 49)), serverChild1); |
1239 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(49, 75)), serverChild1); |
1240 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(75, 49)), serverChild1); |
1241 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(76, 49)), serverParent); |
1242 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(49, 76)), serverParent); |
1243 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(49, 100)), serverParent); |
1244 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(100, 49)), serverParent); |
1245 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(50, 50)), serverChild2); |
1246 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(100, 50)), serverChild2); |
1247 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(50, 100)), serverChild2); |
1248 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(75, 75)), serverGrandchild2); |
1249 | |||
1250 | // Around bottom-right. | ||
1251 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(100, 100)), serverGrandchild2); |
1252 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(125, 100)), serverGrandchild2); |
1253 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::surface_at(serverParent, QPointF(100, 125)), serverGrandchild2); |
1254 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::surface_at(serverParent, QPointF(126, 125))); |
1255 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::surface_at(serverParent, QPointF(125, 126))); |
1256 | |||
1257 | // Now test some input positions. | ||
1258 | // Around top-left. | ||
1259 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::input_surface_at(serverParent, QPointF(-26, -25))); |
1260 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::input_surface_at(serverParent, QPointF(-25, -26))); |
1261 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(-25, -25)), serverGrandchild1); |
1262 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(0, 0)), serverGrandchild1); |
1263 | |||
1264 | // Around middle. | ||
1265 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(49, 49)), serverChild1); |
1266 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(49, 75)), serverChild1); |
1267 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(75, 49)), serverChild1); |
1268 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(76, 49)), serverParent); |
1269 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(49, 76)), serverParent); |
1270 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(49, 100)), serverParent); |
1271 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 49)), serverParent); |
1272 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(50, 50)), serverChild2); |
1273 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 50)), serverChild2); |
1274 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(50, 100)), serverChild2); |
1275 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(75, 75)), serverGrandchild2); |
1276 | |||
1277 | // Around bottom-right. | ||
1278 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(99, 99)), serverGrandchild2); |
1279 | |||
1280 | // In Qt QRegions do not contain the right and bottom edge. | ||
1281 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(99, 100)), serverChild2); |
1282 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 99)), serverChild2); |
1283 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(125, 100)), serverChild2); |
1284 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 125)), serverChild2); |
1285 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(125, 125)), serverChild2); |
1286 | |||
1287 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(99, 101)), serverChild2); |
1288 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(101, 99)), serverChild2); |
1289 | |||
1290 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(75, 75)), serverGrandchild2); |
1291 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 100)), serverGrandchild2); |
1292 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(101, 100)), serverGrandchild2); |
1293 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(100, 101)), serverGrandchild2); |
1294 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(101, 101)), serverGrandchild2); |
1295 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QCOMPARE(WST::input_surface_at(serverParent, QPointF(124, 124)), serverGrandchild2); |
1296 | |||
1297 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::input_surface_at(serverParent, QPointF(126, 125))); |
1298 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | QVERIFY(!WST::input_surface_at(serverParent, QPointF(125, 126))); |
1299 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1300 | |||
1301 | 1 | void TestSubsurface::testDestroyAttachedBuffer() | |
1302 | { | ||
1303 | // this test verifies that destroying of a buffer attached to a sub-surface works | ||
1304 | using namespace Wrapland::Client; | ||
1305 | using namespace Wrapland::Server; | ||
1306 | // create surface | ||
1307 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
1308 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1309 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(serverSurfaceCreated.isValid()); |
1310 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
1311 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1312 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> child(m_compositor->createSurface()); |
1313 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1314 | 1 | auto serverChildSurface | |
1315 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1316 | // create sub-surface | ||
1317 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto* sub = m_subCompositor->createSubSurface(child.get(), parent.get()); |
1318 | |||
1319 | // let's damage this surface, will be in sub-surface pending state | ||
1320 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); |
1321 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
1322 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | child->attachBuffer(m_shm->createBuffer(image)); |
1323 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child->damage(QRect(0, 0, 100, 100)); |
1324 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | child->commit(Wrapland::Client::Surface::CommitFlag::None); |
1325 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_connection->flush(); |
1326 | |||
1327 | // Let's try to destroy it | ||
1328 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy destroySpy(serverChildSurface, &QObject::destroyed); |
1329 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(destroySpy.isValid()); |
1330 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete m_shm; |
1331 | 1 | m_shm = nullptr; | |
1332 | 1 | child.reset(); | |
1333 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(destroySpy.wait()); |
1334 | |||
1335 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub; |
1336 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1337 | |||
1338 | 1 | void TestSubsurface::testDestroyParentSurface() | |
1339 | { | ||
1340 | // this test verifies that destroying a parent surface does not create problems | ||
1341 | // see BUG 389231 | ||
1342 | using namespace Wrapland::Client; | ||
1343 | using namespace Wrapland::Server; | ||
1344 | // create surface | ||
1345 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
1346 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1347 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(serverSurfaceCreated.isValid()); |
1348 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> parent(m_compositor->createSurface()); |
1349 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1350 | 1 | auto serverParentSurface | |
1351 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1352 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> child(m_compositor->createSurface()); |
1353 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1354 | 1 | auto serverChildSurface | |
1355 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1356 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> grandChild(m_compositor->createSurface()); |
1357 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(serverSurfaceCreated.wait()); |
1358 | 1 | auto serverGrandChildSurface | |
1359 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
1360 | // create sub-surface in desynchronized mode as Qt uses them | ||
1361 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto sub1 = m_subCompositor->createSubSurface(child.get(), parent.get()); |
1362 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | sub1->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1363 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | auto sub2 = m_subCompositor->createSubSurface(grandChild.get(), child.get()); |
1364 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | sub2->setMode(Wrapland::Client::SubSurface::Mode::Desynchronized); |
1365 | |||
1366 | // let's damage this surface | ||
1367 | // and at the same time delete the parent surface | ||
1368 | 1 | parent.reset(); | |
1369 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy parentDestroyedSpy(serverParentSurface, &QObject::destroyed); |
1370 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(parentDestroyedSpy.isValid()); |
1371 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(parentDestroyedSpy.wait()); |
1372 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); |
1373 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
1374 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grandChild->attachBuffer(m_shm->createBuffer(image)); |
1375 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandChild->damage(QRect(0, 0, 100, 100)); |
1376 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | grandChild->commit(Wrapland::Client::Surface::CommitFlag::None); |
1377 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverGrandChildSurface, &Wrapland::Server::Surface::committed); |
1378 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(commit_spy.isValid()); |
1379 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
1380 | |||
1381 | // Let's try to destroy it | ||
1382 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy destroySpy(serverChildSurface, &QObject::destroyed); |
1383 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | QVERIFY(destroySpy.isValid()); |
1384 | 1 | child.reset(); | |
1385 |
5/10✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(destroySpy.wait()); |
1386 | |||
1387 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub1; |
1388 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete sub2; |
1389 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1390 | |||
1391 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | QTEST_GUILESS_MAIN(TestSubsurface) |
1392 | #include "subsurface.moc" | ||
1393 |