Directory: | ./ |
---|---|
File: | autotests/client/surface.cpp |
Date: | 2024-01-22 17:25:27 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 791 | 791 | 100.0% |
Branches: | 1637 | 3366 | 48.6% |
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 <QImage> | ||
21 | #include <QPainter> | ||
22 | #include <QtTest> | ||
23 | |||
24 | #include "../../src/client/compositor.h" | ||
25 | #include "../../src/client/connection_thread.h" | ||
26 | #include "../../src/client/event_queue.h" | ||
27 | #include "../../src/client/idleinhibit.h" | ||
28 | #include "../../src/client/output.h" | ||
29 | #include "../../src/client/region.h" | ||
30 | #include "../../src/client/registry.h" | ||
31 | #include "../../src/client/shm_pool.h" | ||
32 | #include "../../src/client/surface.h" | ||
33 | |||
34 | #include "../../server/buffer.h" | ||
35 | #include "../../server/client.h" | ||
36 | #include "../../server/compositor.h" | ||
37 | #include "../../server/display.h" | ||
38 | #include "../../server/idle_inhibit_v1.h" | ||
39 | #include "../../server/surface.h" | ||
40 | |||
41 | #include "../../tests/globals.h" | ||
42 | #include "../../tests/helpers.h" | ||
43 | |||
44 | #include <wayland-client-protocol.h> | ||
45 | |||
46 | class TestSurface : public QObject | ||
47 | { | ||
48 | Q_OBJECT | ||
49 | public: | ||
50 | explicit TestSurface(QObject* parent = nullptr); | ||
51 | private Q_SLOTS: | ||
52 | void init(); | ||
53 | void cleanup(); | ||
54 | |||
55 | void testStaticAccessor(); | ||
56 | void testDamage(); | ||
57 | void testFrameCallback(); | ||
58 | void testAttachBuffer(); | ||
59 | void testMultipleSurfaces(); | ||
60 | void testOpaque(); | ||
61 | void testInput(); | ||
62 | void testScale(); | ||
63 | void testDestroy(); | ||
64 | void testUnmapOfNotMappedSurface(); | ||
65 | void testDamageTracking(); | ||
66 | void testSurfaceAt(); | ||
67 | void testDestroyAttachedBuffer(); | ||
68 | void testDestroyWithPendingCallback(); | ||
69 | void testDisconnect(); | ||
70 | void testOutput(); | ||
71 | void testInhibit(); | ||
72 | |||
73 | private: | ||
74 | 1 | struct { | |
75 | std::unique_ptr<Wrapland::Server::Display> display; | ||
76 | Wrapland::Server::globals globals; | ||
77 | } server; | ||
78 | |||
79 | Wrapland::Client::ConnectionThread* m_connection; | ||
80 | Wrapland::Client::Compositor* m_compositor; | ||
81 | Wrapland::Client::ShmPool* m_shm; | ||
82 | Wrapland::Client::EventQueue* m_queue; | ||
83 | Wrapland::Client::IdleInhibitManager* m_idleInhibitManager; | ||
84 | QThread* m_thread; | ||
85 | }; | ||
86 | |||
87 | constexpr auto socket_name{"wrapland-test-wayland-surface-0"}; | ||
88 | |||
89 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | TestSurface::TestSurface(QObject* parent) |
90 | 1 | : QObject(parent) | |
91 | 1 | , m_connection(nullptr) | |
92 | 1 | , m_compositor(nullptr) | |
93 | 1 | , m_thread(nullptr) | |
94 | 1 | { | |
95 | 1 | } | |
96 | |||
97 | 17 | void TestSurface::init() | |
98 | { | ||
99 | 17 | qRegisterMetaType<Wrapland::Server::Surface*>(); | |
100 | |||
101 | 17 | server.display = std::make_unique<Wrapland::Server::Display>(); | |
102 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | server.display->set_socket_name(socket_name); |
103 | 17 | server.display->start(); | |
104 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | QVERIFY(server.display->running()); |
105 | |||
106 | 34 | server.globals.output_manager | |
107 | 34 | = std::make_unique<Wrapland::Server::output_manager>(*server.display); | |
108 | 17 | server.display->createShm(); | |
109 | 34 | server.globals.compositor | |
110 | 34 | = std::make_unique<Wrapland::Server::Compositor>(server.display.get()); | |
111 | 34 | server.globals.idle_inhibit_manager_v1 | |
112 | 34 | = std::make_unique<Wrapland::Server::IdleInhibitManagerV1>(server.display.get()); | |
113 | |||
114 | // setup connection | ||
115 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_connection = new Wrapland::Client::ConnectionThread; |
116 | 17 | QSignalSpy connectedSpy(m_connection, &Wrapland::Client::ConnectionThread::establishedChanged); | |
117 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | m_connection->setSocketName(socket_name); |
118 | |||
119 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | m_thread = new QThread(this); |
120 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_connection->moveToThread(m_thread); |
121 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_thread->start(); |
122 | |||
123 | /*connect(QCoreApplication::eventDispatcher(), &QAbstractEventDispatcher::aboutToBlock, | ||
124 | m_connection, [this]() { if (m_connection->display()) { | ||
125 | wl_display_flush(m_connection->display()); | ||
126 | } | ||
127 | } | ||
128 | );*/ | ||
129 | |||
130 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_connection->establishConnection(); |
131 |
6/12✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 17 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 17 times.
|
17 | QVERIFY(connectedSpy.count() || connectedSpy.wait()); |
132 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 17 times.
|
17 | QCOMPARE(connectedSpy.count(), 1); |
133 | |||
134 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | m_queue = new Wrapland::Client::EventQueue(this); |
135 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(!m_queue->isValid()); |
136 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_queue->setup(m_connection); |
137 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(m_queue->isValid()); |
138 | |||
139 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | Wrapland::Client::Registry registry; |
140 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | registry.setEventQueue(m_queue); |
141 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | QSignalSpy compositorSpy(®istry, SIGNAL(compositorAnnounced(quint32, quint32))); |
142 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | QSignalSpy shmSpy(®istry, SIGNAL(shmAnnounced(quint32, quint32))); |
143 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | QSignalSpy allAnnounced(®istry, SIGNAL(interfacesAnnounced())); |
144 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(allAnnounced.isValid()); |
145 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(shmSpy.isValid()); |
146 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | registry.create(m_connection->display()); |
147 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(registry.isValid()); |
148 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | registry.setup(); |
149 |
5/10✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 17 times.
|
17 | QVERIFY(allAnnounced.wait()); |
150 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | QVERIFY(!compositorSpy.isEmpty()); |
151 |
2/4✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
|
17 | QVERIFY(!shmSpy.isEmpty()); |
152 | |||
153 |
4/8✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
|
34 | m_compositor = registry.createCompositor(compositorSpy.first().first().value<quint32>(), |
154 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | compositorSpy.first().last().value<quint32>(), |
155 | this); | ||
156 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(m_compositor->isValid()); |
157 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_shm = registry.createShmPool( |
158 |
6/12✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 17 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 17 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 17 times.
✗ Branch 11 not taken.
|
17 | shmSpy.first().first().value<quint32>(), shmSpy.first().last().value<quint32>(), this); |
159 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(m_shm->isValid()); |
160 | |||
161 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | m_idleInhibitManager = registry.createIdleInhibitManager( |
162 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | registry.interface(Wrapland::Client::Registry::Interface::IdleInhibitManagerUnstableV1) |
163 | 17 | .name, | |
164 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | registry.interface(Wrapland::Client::Registry::Interface::IdleInhibitManagerUnstableV1) |
165 | 17 | .version, | |
166 | this); | ||
167 |
3/6✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 17 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
✗ Branch 5 not taken.
|
17 | QVERIFY(m_idleInhibitManager->isValid()); |
168 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | } |
169 | |||
170 | 17 | void TestSurface::cleanup() | |
171 | { | ||
172 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | if (m_compositor) { |
173 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | delete m_compositor; |
174 | 17 | m_compositor = nullptr; | |
175 | 17 | } | |
176 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | if (m_idleInhibitManager) { |
177 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | delete m_idleInhibitManager; |
178 | 17 | m_idleInhibitManager = nullptr; | |
179 | 17 | } | |
180 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 16 times.
|
17 | if (m_shm) { |
181 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
|
16 | delete m_shm; |
182 | 16 | m_shm = nullptr; | |
183 | 16 | } | |
184 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | if (m_queue) { |
185 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | delete m_queue; |
186 | 17 | m_queue = nullptr; | |
187 | 17 | } | |
188 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | if (m_thread) { |
189 | 17 | m_thread->quit(); | |
190 | 17 | m_thread->wait(); | |
191 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
|
17 | delete m_thread; |
192 | 17 | m_thread = nullptr; | |
193 | 17 | } | |
194 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 16 times.
|
17 | delete m_connection; |
195 | 17 | m_connection = nullptr; | |
196 | |||
197 |
1/2✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
|
17 | server = {}; |
198 | 17 | } | |
199 | |||
200 | 1 | void TestSurface::testStaticAccessor() | |
201 | { | ||
202 | // TODO: Does this test still make sense with the remodel? If yes, needs porting. | ||
203 | #if 0 | ||
204 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | ||
205 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | ||
206 | QVERIFY(serverSurfaceCreated.isValid()); | ||
207 | |||
208 | QVERIFY(!Wrapland::Server::Surface::get(nullptr)); | ||
209 | QVERIFY(!Wrapland::Server::Surface::get(1, nullptr)); | ||
210 | QVERIFY(Wrapland::Client::Surface::all().isEmpty()); | ||
211 | auto s1 = m_compositor->createSurface(); | ||
212 | QVERIFY(s1->isValid()); | ||
213 | QCOMPARE(Wrapland::Client::Surface::all().count(), 1); | ||
214 | QCOMPARE(Wrapland::Client::Surface::all().first(), s1); | ||
215 | QCOMPARE(Wrapland::Client::Surface::get(*s1), s1); | ||
216 | QVERIFY(serverSurfaceCreated.wait()); | ||
217 | auto serverSurface1 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); | ||
218 | QVERIFY(serverSurface1); | ||
219 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface1->resource()), serverSurface1); | ||
220 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface1->id(), serverSurface1->client()), | ||
221 | serverSurface1); | ||
222 | |||
223 | QVERIFY(!s1->size().isValid()); | ||
224 | QSignalSpy sizeChangedSpy(s1, SIGNAL(sizeChanged(QSize))); | ||
225 | QVERIFY(sizeChangedSpy.isValid()); | ||
226 | const QSize testSize(200, 300); | ||
227 | s1->setSize(testSize); | ||
228 | QCOMPARE(s1->size(), testSize); | ||
229 | QCOMPARE(sizeChangedSpy.count(), 1); | ||
230 | QCOMPARE(sizeChangedSpy.first().first().toSize(), testSize); | ||
231 | |||
232 | // add another surface | ||
233 | auto s2 = m_compositor->createSurface(); | ||
234 | QVERIFY(s2->isValid()); | ||
235 | QCOMPARE(Wrapland::Client::Surface::all().count(), 2); | ||
236 | QCOMPARE(Wrapland::Client::Surface::all().first(), s1); | ||
237 | QCOMPARE(Wrapland::Client::Surface::all().last(), s2); | ||
238 | QCOMPARE(Wrapland::Client::Surface::get(*s1), s1); | ||
239 | QCOMPARE(Wrapland::Client::Surface::get(*s2), s2); | ||
240 | serverSurfaceCreated.clear(); | ||
241 | QVERIFY(serverSurfaceCreated.wait()); | ||
242 | auto serverSurface2 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); | ||
243 | QVERIFY(serverSurface2); | ||
244 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface1->resource()), serverSurface1); | ||
245 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface1->id(), serverSurface1->client()), | ||
246 | serverSurface1); | ||
247 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface2->resource()), serverSurface2); | ||
248 | QCOMPARE(Wrapland::Server::Surface::get(serverSurface2->id(), serverSurface2->client()), | ||
249 | serverSurface2); | ||
250 | |||
251 | // delete s2 again | ||
252 | delete s2; | ||
253 | QCOMPARE(Wrapland::Client::Surface::all().count(), 1); | ||
254 | QCOMPARE(Wrapland::Client::Surface::all().first(), s1); | ||
255 | QCOMPARE(Wrapland::Client::Surface::get(*s1), s1); | ||
256 | |||
257 | // and finally delete the last one | ||
258 | delete s1; | ||
259 | QVERIFY(Wrapland::Client::Surface::all().isEmpty()); | ||
260 | QVERIFY(!Wrapland::Client::Surface::get(nullptr)); | ||
261 | QSignalSpy unboundSpy(serverSurface1, &Wrapland::Server::Resource::unbound); | ||
262 | QVERIFY(unboundSpy.isValid()); | ||
263 | QVERIFY(unboundSpy.wait()); | ||
264 | QVERIFY(!Wrapland::Server::Surface::get(nullptr)); | ||
265 | QVERIFY(!Wrapland::Server::Surface::get(1, nullptr)); | ||
266 | #endif | ||
267 | 1 | } | |
268 | |||
269 | 1 | void TestSurface::testDamage() | |
270 | { | ||
271 | 2 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
272 | 1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | |
273 |
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()); |
274 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; |
275 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(2); |
276 |
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()); |
277 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
278 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
279 |
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(serverSurface->state().damage, QRegion()); |
280 |
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(!serverSurface->isMapped()); |
281 | |||
282 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy committedSpy(serverSurface, SIGNAL(committed())); |
283 | |||
284 | // send damage without a buffer | ||
285 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 100, 100)); |
286 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
287 |
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()); |
288 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
289 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
290 |
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(!serverSurface->isMapped()); |
291 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(committedSpy.count(), 1); |
292 |
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(serverSurface->state().damage.isEmpty()); |
293 | |||
294 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); |
295 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
296 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto b = m_shm->createBuffer(img); |
297 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b, QPoint(55, 55)); |
298 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 10, 10)); |
299 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
300 |
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(committedSpy.wait()); |
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(serverSurface->state().offset, |
302 | QPoint(55, 55)); // offset is surface local so scale doesn't change this | ||
303 |
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(serverSurface->state().damage, QRegion(0, 0, 5, 5)); // scale is 2 |
304 |
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(serverSurface->isMapped()); |
305 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(committedSpy.count(), 2); |
306 | |||
307 | // damage multiple times | ||
308 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QRegion testRegion(5, 8, 3, 6); |
309 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | testRegion = testRegion.united(QRect(10, 11, 6, 1)); |
310 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img = QImage(QSize(40, 35), QImage::Format_ARGB32_Premultiplied); |
311 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
312 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | b = m_shm->createBuffer(img); |
313 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b); |
314 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(testRegion); |
315 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
316 |
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(committedSpy.wait()); |
317 |
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->state().damage, testRegion); |
318 |
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(serverSurface->isMapped()); |
319 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(committedSpy.count(), 3); |
320 | |||
321 | // damage buffer | ||
322 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | const QRegion testRegion2(30, 40, 22, 4); |
323 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | const QRegion cmpRegion2(15, 20, 11, 2); // divided by scale factor |
324 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img = QImage(QSize(80, 70), QImage::Format_ARGB32_Premultiplied); |
325 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
326 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | b = m_shm->createBuffer(img); |
327 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b); |
328 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damageBuffer(testRegion2); |
329 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
330 |
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(committedSpy.wait()); |
331 |
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->state().damage, cmpRegion2); |
332 |
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(serverSurface->isMapped()); |
333 | |||
334 | // combined regular damage and damaged buffer | ||
335 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | const QRegion testRegion3 = testRegion.united(cmpRegion2); |
336 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img = QImage(QSize(80, 70), QImage::Format_ARGB32_Premultiplied); |
337 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
338 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | b = m_shm->createBuffer(img); |
339 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b); |
340 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(testRegion); |
341 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damageBuffer(testRegion2); |
342 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
343 |
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(committedSpy.wait()); |
344 |
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(serverSurface->state().damage != testRegion); |
345 |
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(serverSurface->state().damage != testRegion2); |
346 |
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(serverSurface->state().damage != cmpRegion2); |
347 |
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->state().damage, testRegion3); |
348 |
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(serverSurface->isMapped()); |
349 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
350 | |||
351 | 1 | void TestSurface::testFrameCallback() | |
352 | { | ||
353 | 2 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
354 | 1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | |
355 |
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()); |
356 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; |
357 |
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()); |
358 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
359 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
360 | |||
361 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
362 |
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()); |
363 | |||
364 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy frameRenderedSpy(s.get(), SIGNAL(frameRendered())); |
365 |
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()); |
366 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); |
367 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
368 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto b = m_shm->createBuffer(img); |
369 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b); |
370 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 10, 10)); |
371 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(); |
372 |
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()); |
373 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->frameRendered(10); |
374 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(frameRenderedSpy.isEmpty()); |
375 |
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()); |
376 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(!frameRenderedSpy.isEmpty()); |
377 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
378 | |||
379 | 1 | void TestSurface::testAttachBuffer() | |
380 | { | ||
381 | // create the surface | ||
382 | 2 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
383 | 1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | |
384 |
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()); |
385 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; |
386 |
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()); |
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 | auto serverSurface = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
388 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(serverSurface); |
389 | |||
390 | // create three images | ||
391 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage black(24, 24, QImage::Format_RGB32); |
392 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | black.fill(Qt::black); |
393 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage red(24, 24, QImage::Format_ARGB32); // Note - deliberately not premultiplied |
394 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | red.fill(QColor(255, 0, 0, 128)); |
395 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage blue(24, 24, QImage::Format_ARGB32_Premultiplied); |
396 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | blue.fill(QColor(0, 0, 255, 128)); |
397 | |||
398 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::shared_ptr<Wrapland::Client::Buffer> blackBufferPtr = m_shm->createBuffer(black).lock(); |
399 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(blackBufferPtr); |
400 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | wl_buffer* blackBuffer = *(blackBufferPtr.get()); |
401 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::shared_ptr<Wrapland::Client::Buffer> redBuffer = m_shm->createBuffer(red).lock(); |
402 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(redBuffer); |
403 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::shared_ptr<Wrapland::Client::Buffer> blueBuffer = m_shm->createBuffer(blue).lock(); |
404 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QVERIFY(blueBuffer); |
405 | |||
406 |
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(blueBuffer->format(), Wrapland::Client::Buffer::Format::ARGB32); |
407 |
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(blueBuffer->size(), blue.size()); |
408 |
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(!blueBuffer->isReleased()); |
409 |
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(!blueBuffer->isUsed()); |
410 |
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(blueBuffer->stride(), blue.bytesPerLine()); |
411 | |||
412 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(redBuffer); |
413 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(blackBuffer); |
414 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 24, 24)); |
415 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
416 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
417 |
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()); |
418 |
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()); |
419 |
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(serverSurface->isMapped()); |
420 | |||
421 | // now the ServerSurface should have the black image attached as a buffer | ||
422 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer1 = serverSurface->state().buffer; |
423 |
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(buffer1->shmBuffer()); |
424 |
4/8✓ 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.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(buffer1->shmImage()->createQImage(), black); |
425 |
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(buffer1->shmImage()->format(), Wrapland::Server::ShmImage::Format::xrgb8888); |
426 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer1->shmImage()->createQImage().format(), QImage::Format_RGB32); |
427 | 1 | buffer1.reset(); | |
428 | |||
429 | // render another frame | ||
430 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(redBuffer); |
431 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 24, 24)); |
432 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
433 |
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(!redBuffer->isReleased()); |
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 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy.wait()); |
435 |
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(serverSurface->isMapped()); |
436 | |||
437 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer2 = serverSurface->state().buffer; |
438 |
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(buffer2->shmBuffer()); |
439 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer2->shmImage()->createQImage().format(), QImage::Format_ARGB32_Premultiplied); |
440 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer2->shmImage()->createQImage().width(), 24); |
441 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer2->shmImage()->createQImage().height(), 24); |
442 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 24 times.
|
25 | for (int i = 0; i < 24; ++i) { |
443 |
2/2✓ Branch 0 taken 24 times.
✓ Branch 1 taken 576 times.
|
600 | for (int j = 0; j < 24; ++j) { |
444 | // it's premultiplied in the format | ||
445 |
6/12✓ Branch 0 taken 576 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 576 times.
✓ Branch 4 taken 576 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 576 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 576 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 576 times.
✗ Branch 11 not taken.
|
576 | QCOMPARE(buffer2->shmImage()->createQImage().pixel(i, j), qRgba(128, 0, 0, 128)); |
446 | 576 | } | |
447 | 24 | } | |
448 |
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(!redBuffer->isReleased()); |
449 | 1 | buffer2.reset(); | |
450 |
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(!redBuffer->isReleased()); |
451 | |||
452 | // render another frame | ||
453 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | blueBuffer->setUsed(true); |
454 |
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(blueBuffer->isUsed()); |
455 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(blueBuffer.get()); |
456 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 24, 24)); |
457 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy frameRenderedSpy(s.get(), SIGNAL(frameRendered())); |
458 |
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(frameRenderedSpy.isValid()); |
459 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(); |
460 |
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()); |
461 |
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(serverSurface->isMapped()); |
462 | 1 | buffer2.reset(); | |
463 | |||
464 | // TODO: we should have a signal on when the Buffer gets released | ||
465 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); |
466 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | if (!redBuffer->isReleased()) { |
467 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); |
468 | 1 | } | |
469 |
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(redBuffer->isReleased()); |
470 | |||
471 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer3 = serverSurface->state().buffer.get(); |
472 |
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(buffer3->shmBuffer()); |
473 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer3->shmImage()->createQImage().format(), QImage::Format_ARGB32_Premultiplied); |
474 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer3->shmImage()->createQImage().width(), 24); |
475 |
5/10✓ 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.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
|
1 | QCOMPARE(buffer3->shmImage()->createQImage().height(), 24); |
476 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 24 times.
|
25 | for (int i = 0; i < 24; ++i) { |
477 |
2/2✓ Branch 0 taken 576 times.
✓ Branch 1 taken 24 times.
|
600 | for (int j = 0; j < 24; ++j) { |
478 | // it's premultiplied in the format | ||
479 |
6/12✓ Branch 0 taken 576 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 576 times.
✓ Branch 4 taken 576 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 576 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 576 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 576 times.
|
576 | QCOMPARE(buffer3->shmImage()->createQImage().pixel(i, j), qRgba(0, 0, 128, 128)); |
480 | 576 | } | |
481 | 24 | } | |
482 | |||
483 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->frameRendered(1); |
484 |
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()); |
485 | |||
486 | // commit a different value shouldn't change our buffer | ||
487 |
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->state().buffer.get(), buffer3); |
488 |
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(serverSurface->state().input.isNull()); |
489 |
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 | s->setInputRegion(m_compositor->createRegion(QRegion(0, 0, 24, 24)).get()); |
490 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
491 |
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()); |
492 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
493 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
494 |
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(serverSurface->state().input, QRegion(0, 0, 24, 24)); |
495 |
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->state().buffer.get(), buffer3); |
496 |
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(serverSurface->state().damage.isEmpty()); |
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(serverSurface->isMapped()); |
498 | |||
499 | // clear the surface | ||
500 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(blackBuffer); |
501 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 1, 1)); |
502 | // TODO: better method | ||
503 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer((wl_buffer*)nullptr); |
504 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 10, 10)); |
505 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
506 |
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()); |
507 |
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(serverSurface->state().damage.isEmpty()); |
508 |
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(!serverSurface->isMapped()); |
509 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
510 | |||
511 | 1 | void TestSurface::testMultipleSurfaces() | |
512 | { | ||
513 | using namespace Wrapland::Client; | ||
514 | using namespace Wrapland::Server; | ||
515 | 1 | Registry registry; | |
516 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | registry.setEventQueue(m_queue); |
517 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy shmSpy(®istry, SIGNAL(shmAnnounced(quint32, quint32))); |
518 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | registry.create(m_connection->display()); |
519 |
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(registry.isValid()); |
520 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | registry.setup(); |
521 |
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(shmSpy.wait()); |
522 | |||
523 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | ShmPool pool1; |
524 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | ShmPool pool2; |
525 |
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.
|
2 | pool1.setup(registry.bindShm(shmSpy.first().first().value<quint32>(), |
526 |
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 | shmSpy.first().last().value<quint32>())); |
527 |
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.
|
2 | pool2.setup(registry.bindShm(shmSpy.first().first().value<quint32>(), |
528 |
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 | shmSpy.first().last().value<quint32>())); |
529 |
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(pool1.isValid()); |
530 |
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(pool2.isValid()); |
531 | |||
532 | // create the surfaces | ||
533 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), |
534 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); |
535 |
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()); |
536 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s1(m_compositor->createSurface()); |
537 |
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()); |
538 |
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 serverSurface1 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
539 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface1); |
540 | // second surface | ||
541 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s2(m_compositor->createSurface()); |
542 |
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()); |
543 |
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 serverSurface2 = serverSurfaceCreated.last().first().value<Wrapland::Server::Surface*>(); |
544 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface2); |
545 | // QVERIFY(serverSurface1->resource() != serverSurface2->resource()); | ||
546 | |||
547 | // create two images | ||
548 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage black(24, 24, QImage::Format_RGB32); |
549 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | black.fill(Qt::black); |
550 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage red(24, 24, QImage::Format_ARGB32_Premultiplied); |
551 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | red.fill(QColor(255, 0, 0, 128)); |
552 | |||
553 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto blackBuffer = pool1.createBuffer(black); |
554 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto redBuffer = pool2.createBuffer(red); |
555 | |||
556 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s1->attachBuffer(blackBuffer); |
557 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s1->damage(QRect(0, 0, 24, 24)); |
558 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s1->commit(Wrapland::Client::Surface::CommitFlag::None); |
559 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy1(serverSurface1, &Wrapland::Server::Surface::committed); |
560 |
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_spy1.isValid()); |
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 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy1.wait()); |
562 | |||
563 | // now the ServerSurface should have the black image attached as a buffer | ||
564 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer1 = serverSurface1->state().buffer; |
565 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(buffer1); |
566 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QImage buffer1Data = buffer1->shmImage()->createQImage(); |
567 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(buffer1Data, black); |
568 | // accessing the same buffer is OK | ||
569 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QImage buffer1Data2 = buffer1->shmImage()->createQImage(); |
570 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(buffer1Data2, buffer1Data); |
571 | 1 | buffer1Data = QImage(); | |
572 |
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(buffer1Data.isNull()); |
573 | 1 | buffer1Data2 = QImage(); | |
574 |
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(buffer1Data2.isNull()); |
575 | |||
576 | // attach a buffer for the other surface | ||
577 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s2->attachBuffer(redBuffer); |
578 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s2->damage(QRect(0, 0, 24, 24)); |
579 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s2->commit(Wrapland::Client::Surface::CommitFlag::None); |
580 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy2(serverSurface2, &Wrapland::Server::Surface::committed); |
581 |
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_spy2.isValid()); |
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 not taken.
✓ Branch 9 taken 1 times.
|
1 | QVERIFY(commit_spy2.wait()); |
583 | |||
584 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer2 = serverSurface2->state().buffer; |
585 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(buffer2); |
586 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QImage buffer2Data = buffer2->shmImage()->createQImage(); |
587 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(buffer2Data, red); |
588 | |||
589 | // while buffer2 is accessed we cannot access buffer1 | ||
590 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto buffer1ShmImage = buffer1->shmImage(); |
591 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(!buffer1ShmImage); |
592 | |||
593 | // a deep copy can be kept around | ||
594 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage deepCopy = buffer2Data.copy(); |
595 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(deepCopy, red); |
596 | 1 | buffer2Data = QImage(); | |
597 |
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(buffer2Data.isNull()); |
598 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(deepCopy, red); |
599 | |||
600 | // now that buffer2Data is destroyed we can access buffer1 again | ||
601 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | buffer1ShmImage = buffer1->shmImage(); |
602 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(buffer1ShmImage); |
603 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | buffer1Data = buffer1ShmImage->createQImage(); |
604 |
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(!buffer1Data.isNull()); |
605 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QCOMPARE(buffer1Data, black); |
606 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
607 | |||
608 | 1 | void TestSurface::testOpaque() | |
609 | { | ||
610 | using namespace Wrapland::Client; | ||
611 | using namespace Wrapland::Server; | ||
612 | 2 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
613 | 1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | |
614 |
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()); |
615 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; |
616 |
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()); |
617 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
618 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
619 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
620 |
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()); |
621 | |||
622 | // by default there should be an empty opaque region | ||
623 |
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(serverSurface->state().opaque, QRegion()); |
624 | |||
625 | // let's install an opaque region | ||
626 |
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 | s->setOpaqueRegion(m_compositor->createRegion(QRegion(0, 10, 20, 30)).get()); |
627 | // the region should only be applied after the surface got committed | ||
628 |
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()); |
629 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
630 |
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(serverSurface->state().opaque, QRegion()); |
631 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 0); |
632 | |||
633 | // so let's commit to get the new region | ||
634 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
635 |
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()); |
636 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
637 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::opaque); |
638 |
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(serverSurface->state().opaque, QRegion(0, 10, 20, 30)); |
639 | |||
640 | // committing without setting a new region shouldn't change | ||
641 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
642 |
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()); |
643 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
644 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 2); |
645 |
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->state().updates & Wrapland::Server::surface_change::opaque, false); |
646 |
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(serverSurface->state().opaque, QRegion(0, 10, 20, 30)); |
647 | |||
648 | // let's change the opaque region | ||
649 |
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 | s->setOpaqueRegion(m_compositor->createRegion(QRegion(10, 20, 30, 40)).get()); |
650 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
651 |
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()); |
652 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 3); |
653 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::opaque); |
654 |
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(serverSurface->state().opaque, QRegion(10, 20, 30, 40)); |
655 | |||
656 | // and let's go back to an empty region | ||
657 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setOpaqueRegion(); |
658 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
659 |
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()); |
660 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 4); |
661 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::opaque); |
662 |
4/8✓ 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.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSurface->state().opaque, QRegion()); |
663 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
664 | |||
665 | 1 | void TestSurface::testInput() | |
666 | { | ||
667 | using namespace Wrapland::Client; | ||
668 | using namespace Wrapland::Server; | ||
669 | 2 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
670 | 1 | SIGNAL(surfaceCreated(Wrapland::Server::Surface*))); | |
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 | QVERIFY(serverSurfaceCreated.isValid()); |
672 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; |
673 |
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()); |
674 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
675 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
676 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
677 |
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()); |
678 | |||
679 | // by default there should be an empty == infinite input region | ||
680 |
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(serverSurface->state().input, QRegion()); |
681 |
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->state().input_is_infinite, true); |
682 | |||
683 | // let's install an input region | ||
684 |
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 | s->setInputRegion(m_compositor->createRegion(QRegion(0, 10, 20, 30)).get()); |
685 | // the region should only be applied after the surface got committed | ||
686 |
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()); |
687 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
688 |
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(serverSurface->state().input, QRegion()); |
689 |
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->state().input_is_infinite, true); |
690 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 0); |
691 | |||
692 | // so let's commit to get the new region | ||
693 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
694 |
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()); |
695 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
696 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::input); |
697 |
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(serverSurface->state().input, QRegion(0, 10, 20, 30)); |
698 |
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->state().input_is_infinite, false); |
699 | |||
700 | // committing without setting a new region shouldn't change | ||
701 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
702 |
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()); |
703 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QCoreApplication::processEvents(); |
704 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 2); |
705 |
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->state().updates & Wrapland::Server::surface_change::input, false); |
706 |
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(serverSurface->state().input, QRegion(0, 10, 20, 30)); |
707 |
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->state().input_is_infinite, false); |
708 | |||
709 | // let's change the input region | ||
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 | s->setInputRegion(m_compositor->createRegion(QRegion(10, 20, 30, 40)).get()); |
711 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
712 |
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()); |
713 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 3); |
714 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::input); |
715 |
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(serverSurface->state().input, QRegion(10, 20, 30, 40)); |
716 |
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->state().input_is_infinite, false); |
717 | |||
718 | // and let's go back to an empty region | ||
719 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setInputRegion(); |
720 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
721 |
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()); |
722 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 4); |
723 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::input); |
724 |
4/8✓ 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.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSurface->state().input, QRegion()); |
725 |
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->state().input_is_infinite, true); |
726 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
727 | |||
728 | 1 | void TestSurface::testScale() | |
729 | { | ||
730 | // This test verifies that updating the scale factor is correctly passed to the Wayland server. | ||
731 | |||
732 | // Create surface. | ||
733 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
734 | &Wrapland::Server::Compositor::surfaceCreated); | ||
735 |
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()); |
736 | |||
737 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); |
738 |
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(s->scale(), 1); |
739 |
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()); |
740 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
741 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
742 |
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->state().scale, 1); |
743 | |||
744 | // let's change the scale factor | ||
745 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
746 | |||
747 |
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()); |
748 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(2); |
749 |
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(s->scale(), 2); |
750 | // needs a commit | ||
751 |
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.wait(100)); |
752 |
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->state().updates & Wrapland::Server::surface_change::scale, false); |
753 | |||
754 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
755 |
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()); |
756 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
757 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::scale); |
758 |
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->state().scale, 2); |
759 | |||
760 | // even though we've changed the scale, if we don't have a buffer we | ||
761 | // don't have a size. If we don't have a size it can't have changed | ||
762 |
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->state().updates & Wrapland::Server::surface_change::size, false); |
763 |
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(!serverSurface->size().isValid()); |
764 | |||
765 | // let's try changing to same factor, should not emit changed on server | ||
766 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(2); |
767 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
768 |
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()); |
769 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QEXPECT_FAIL("", "Scale update set also when factor stays same. Change behavior?", Continue); |
770 |
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->state().updates & Wrapland::Server::surface_change::scale, false); |
771 | |||
772 | // but changing to a different value should still work | ||
773 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(4); |
774 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
775 |
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()); |
776 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 3); |
777 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::scale); |
778 |
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->state().scale, 4); |
779 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | commit_spy.clear(); |
780 | |||
781 | // attach a buffer of 100x100, our scale is 4, so this should be a size of 25x25 | ||
782 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage red(100, 100, QImage::Format_ARGB32_Premultiplied); |
783 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | red.fill(QColor(255, 0, 0, 128)); |
784 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::shared_ptr<Wrapland::Client::Buffer> redBuffer = m_shm->createBuffer(red).lock(); |
785 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(redBuffer); |
786 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(redBuffer.get()); |
787 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 25, 25)); |
788 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
789 |
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()); |
790 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
791 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::size); |
792 |
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->state().updates & Wrapland::Server::surface_change::scale, false); |
793 |
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->size(), QSize(25, 25)); |
794 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | commit_spy.clear(); |
795 | |||
796 | // set the scale to 1, buffer is still 100x100 so size should change to 100x100 | ||
797 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(1); |
798 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
799 |
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()); |
800 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
801 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::size); |
802 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::scale); |
803 |
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->state().scale, 1); |
804 |
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->size(), QSize(100, 100)); |
805 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | commit_spy.clear(); |
806 | |||
807 | // set scale and size in one commit, buffer is 50x50 at scale 2 so size should be 25x25 | ||
808 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage blue(50, 50, QImage::Format_ARGB32_Premultiplied); |
809 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | red.fill(QColor(255, 0, 0, 128)); |
810 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::shared_ptr<Wrapland::Client::Buffer> blueBuffer = m_shm->createBuffer(blue).lock(); |
811 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(blueBuffer); |
812 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(blueBuffer.get()); |
813 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(2); |
814 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
815 |
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()); |
816 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(commit_spy.count(), 1); |
817 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::size); |
818 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::scale); |
819 |
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->state().scale, 2); |
820 |
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->size(), QSize(25, 25)); |
821 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
822 | |||
823 | 1 | void TestSurface::testDestroy() | |
824 | { | ||
825 | using namespace Wrapland::Client; | ||
826 | 1 | std::unique_ptr<Wrapland::Client::Surface> s{m_compositor->createSurface()}; | |
827 | |||
828 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | connect(m_connection, &ConnectionThread::establishedChanged, s.get(), &Surface::release); |
829 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | connect( |
830 | 1 | m_connection, &ConnectionThread::establishedChanged, m_compositor, &Compositor::release); | |
831 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | connect(m_connection, &ConnectionThread::establishedChanged, m_shm, &ShmPool::release); |
832 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | connect(m_connection, &ConnectionThread::establishedChanged, m_queue, &EventQueue::release); |
833 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | connect(m_connection, |
834 | &ConnectionThread::establishedChanged, | ||
835 | 1 | m_idleInhibitManager, | |
836 | 1 | &IdleInhibitManager::release); | |
837 |
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(s->isValid()); |
838 | |||
839 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server = {}; |
840 |
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()); |
841 | |||
842 | // Now the Surface should be destroyed. | ||
843 |
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(!s->isValid()); |
844 | |||
845 | // Calling destroy again should not fail. | ||
846 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->release(); |
847 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
848 | |||
849 | 1 | void TestSurface::testUnmapOfNotMappedSurface() | |
850 | { | ||
851 | // this test verifies that a surface which doesn't have a buffer attached doesn't trigger the | ||
852 | // unmapped signal | ||
853 | |||
854 | // create surface | ||
855 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
856 | &Wrapland::Server::Compositor::surfaceCreated); | ||
857 |
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()); |
858 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); |
859 |
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()); |
860 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
861 | |||
862 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
863 | |||
864 | // let's map a null buffer and change scale to trigger a signal we can wait for | ||
865 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(Wrapland::Client::Buffer::Ptr()); |
866 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->setScale(2); |
867 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
868 | |||
869 |
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()); |
870 |
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(serverSurface->state().updates & Wrapland::Server::surface_change::scale); |
871 |
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->state().updates & Wrapland::Server::surface_change::mapped, false); |
872 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
873 | |||
874 | 1 | void TestSurface::testDamageTracking() | |
875 | { | ||
876 | // this tests the damage tracking feature | ||
877 | using namespace Wrapland::Client; | ||
878 | using namespace Wrapland::Server; | ||
879 | // create surface | ||
880 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
881 | &Wrapland::Server::Compositor::surfaceCreated); | ||
882 |
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()); |
883 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); |
884 |
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()); |
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 | auto serverSurface = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
886 | |||
887 | // before first commit, the tracked damage should be empty | ||
888 |
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(serverSurface->trackedDamage().isEmpty()); |
889 | |||
890 | // Now let's damage the surface | ||
891 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
892 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); |
893 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
894 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
895 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 100, 100)); |
896 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
897 |
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()); |
898 |
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(serverSurface->trackedDamage(), QRegion(0, 0, 100, 100)); |
899 |
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(serverSurface->state().damage, QRegion(0, 0, 100, 100)); |
900 | |||
901 | // resetting the tracked damage should empty it | ||
902 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->resetTrackedDamage(); |
903 |
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(serverSurface->trackedDamage().isEmpty()); |
904 | // but not affect the actual damage | ||
905 |
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(serverSurface->state().damage, QRegion(0, 0, 100, 100)); |
906 | |||
907 | // let's damage some parts of the surface | ||
908 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QPainter p; |
909 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.begin(&image); |
910 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.fillRect(QRect(0, 0, 10, 10), Qt::blue); |
911 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.end(); |
912 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
913 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 10, 10)); |
914 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
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(commit_spy.wait()); |
916 |
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(serverSurface->trackedDamage(), QRegion(0, 0, 10, 10)); |
917 |
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(serverSurface->state().damage, QRegion(0, 0, 10, 10)); |
918 | |||
919 | // and damage some part completely not bounding to the current damage region | ||
920 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.begin(&image); |
921 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.fillRect(QRect(50, 40, 20, 30), Qt::blue); |
922 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | p.end(); |
923 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
924 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(50, 40, 20, 30)); |
925 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
926 |
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()); |
927 |
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 | QCOMPARE(serverSurface->trackedDamage(), QRegion(0, 0, 10, 10).united(QRegion(50, 40, 20, 30))); |
928 |
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->trackedDamage().rectCount(), 2); |
929 |
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(serverSurface->state().damage, QRegion(50, 40, 20, 30)); |
930 | |||
931 | // now let's reset the tracked damage again | ||
932 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->resetTrackedDamage(); |
933 |
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(serverSurface->trackedDamage().isEmpty()); |
934 | // but not affect the actual damage | ||
935 |
4/8✓ 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.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
1 | QCOMPARE(serverSurface->state().damage, QRegion(50, 40, 20, 30)); |
936 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
937 | |||
938 | 1 | void TestSurface::testSurfaceAt() | |
939 | { | ||
940 | // this test verifies that surfaceAt(const QPointF&) works as expected for the case of no | ||
941 | // children | ||
942 | using namespace Wrapland::Client; | ||
943 | using namespace Wrapland::Server; | ||
944 | // create surface | ||
945 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
946 | &Wrapland::Server::Compositor::surfaceCreated); | ||
947 |
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()); |
948 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); |
949 |
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()); |
950 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
951 | |||
952 | // a newly created surface should not be mapped and not provide a surface at a position | ||
953 |
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(!serverSurface->isMapped()); |
954 |
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(!Wrapland::Server::Test::surface_at(serverSurface, QPointF(0, 0))); |
955 | |||
956 | // let's damage this surface | ||
957 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
958 |
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()); |
959 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); |
960 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
961 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
962 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 100, 100)); |
963 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
964 |
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()); |
965 | |||
966 | // now the surface is mapped and surfaceAt should give the surface | ||
967 |
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(serverSurface->isMapped()); |
968 |
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(Wrapland::Server::Test::surface_at(serverSurface, QPointF(0, 0)), serverSurface); |
969 |
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(Wrapland::Server::Test::surface_at(serverSurface, QPointF(100, 100)), serverSurface); |
970 | // outside the geometry it should not give a surface | ||
971 |
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(!Wrapland::Server::Test::surface_at(serverSurface, QPointF(101, 101))); |
972 |
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(!Wrapland::Server::Test::surface_at(serverSurface, QPointF(-1, -1))); |
973 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
974 | |||
975 | 1 | void TestSurface::testDestroyAttachedBuffer() | |
976 | { | ||
977 | // this test verifies that destroying of a buffer attached to a surface works | ||
978 | |||
979 | // create surface | ||
980 | 1 | QSignalSpy serverSurfaceCreated(server.globals.compositor.get(), | |
981 | &Wrapland::Server::Compositor::surfaceCreated); | ||
982 |
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()); |
983 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); |
984 |
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()); |
985 |
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 = serverSurfaceCreated.first().first().value<Wrapland::Server::Surface*>(); |
986 | |||
987 | // let's damage this surface | ||
988 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &Wrapland::Server::Surface::committed); |
989 |
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()); |
990 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); |
991 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::red); |
992 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
993 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 100, 100)); |
994 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::None); |
995 |
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()); |
996 |
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(serverSurface->state().buffer); |
997 | |||
998 | // attach another buffer | ||
999 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | image.fill(Qt::blue); |
1000 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | s->attachBuffer(m_shm->createBuffer(image)); |
1001 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_connection->flush(); |
1002 | |||
1003 | // Let's try to destroy it | ||
1004 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto currentBuffer = serverSurface->state().buffer; |
1005 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy destroySpy(currentBuffer.get(), &Wrapland::Server::Buffer::resourceDestroyed); |
1006 |
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()); |
1007 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | delete m_shm; |
1008 | 1 | m_shm = nullptr; | |
1009 |
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(destroySpy.count() || destroySpy.wait()); |
1010 |
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(!serverSurface->state().buffer); |
1011 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1012 | |||
1013 | 1 | void TestSurface::testDestroyWithPendingCallback() | |
1014 | { | ||
1015 | // this test tries to verify that destroying a surface with a pending callback works correctly | ||
1016 | // first create surface | ||
1017 | using namespace Wrapland::Client; | ||
1018 | using namespace Wrapland::Server; | ||
1019 | 1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); | |
1020 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(s != nullptr); |
1021 |
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(s->isValid()); |
1022 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), |
1023 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1024 |
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()); |
1025 |
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()); |
1026 |
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*>(); |
1027 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
1028 | |||
1029 | // now render to it | ||
1030 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); |
1031 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | img.fill(Qt::black); |
1032 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto b = m_shm->createBuffer(img); |
1033 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->attachBuffer(b); |
1034 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->damage(QRect(0, 0, 10, 10)); |
1035 | // add some frame callbacks | ||
1036 | wl_callback* callbacks[1000]; | ||
1037 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1000 times.
|
1001 | for (int i = 0; i < 1000; i++) { |
1038 |
2/4✓ Branch 0 taken 1000 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1000 times.
✗ Branch 3 not taken.
|
1000 | callbacks[i] = wl_surface_frame(*s); |
1039 | 1000 | } | |
1040 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->commit(Wrapland::Client::Surface::CommitFlag::FrameCallback); |
1041 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy commit_spy(serverSurface, &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 |
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()); |
1044 | |||
1045 | // now try to destroy the Surface again | ||
1046 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy destroyedSpy(serverSurface, &QObject::destroyed); |
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(destroyedSpy.isValid()); |
1048 | 1 | s.reset(); | |
1049 |
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()); |
1050 | |||
1051 |
2/2✓ Branch 0 taken 1000 times.
✓ Branch 1 taken 1 times.
|
1001 | for (int i = 0; i < 1000; i++) { |
1052 |
1/2✓ Branch 0 taken 1000 times.
✗ Branch 1 not taken.
|
1000 | wl_callback_destroy(callbacks[i]); |
1053 | 1000 | } | |
1054 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1055 | |||
1056 | 1 | void TestSurface::testDisconnect() | |
1057 | { | ||
1058 | // this test verifies that the server side correctly tears down the resources when the client | ||
1059 | // disconnects | ||
1060 | using namespace Wrapland::Client; | ||
1061 | using namespace Wrapland::Server; | ||
1062 | 1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); | |
1063 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(s != nullptr); |
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(s->isValid()); |
1065 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), |
1066 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1067 |
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()); |
1068 |
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()); |
1069 |
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*>(); |
1070 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
1071 | |||
1072 | // destroy client | ||
1073 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QSignalSpy clientDisconnectedSpy(serverSurface->client(), |
1074 | &Wrapland::Server::Client::disconnected); | ||
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(clientDisconnectedSpy.isValid()); |
1076 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy surfaceDestroyedSpy(serverSurface, &QObject::destroyed); |
1077 |
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(surfaceDestroyedSpy.isValid()); |
1078 | |||
1079 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | s->release(); |
1080 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_shm->release(); |
1081 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_compositor->release(); |
1082 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_queue->release(); |
1083 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_idleInhibitManager->release(); |
1084 | |||
1085 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(surfaceDestroyedSpy.count(), 0); |
1086 | |||
1087 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(m_connection); |
1088 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_connection->deleteLater(); |
1089 | 1 | m_connection = nullptr; | |
1090 | |||
1091 |
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(clientDisconnectedSpy.wait()); |
1092 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(clientDisconnectedSpy.count(), 1); |
1093 |
12/58✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ 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 not taken.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ 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 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 1 times.
|
1 | QTRY_COMPARE(surfaceDestroyedSpy.count(), 1); |
1094 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1095 | |||
1096 | 1 | void TestSurface::testOutput() | |
1097 | { | ||
1098 | // This test verifies that the enter/leave are sent correctly to the Client | ||
1099 | 1 | qRegisterMetaType<Wrapland::Client::Output*>(); | |
1100 | |||
1101 | 1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); | |
1102 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(s != nullptr); |
1103 |
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(s->isValid()); |
1104 |
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(s->outputs().isEmpty()); |
1105 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy enteredSpy(s.get(), &Wrapland::Client::Surface::outputEntered); |
1106 |
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(enteredSpy.isValid()); |
1107 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy leftSpy(s.get(), &Wrapland::Client::Surface::outputLeft); |
1108 |
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(leftSpy.isValid()); |
1109 | // wait for the surface on the Server side | ||
1110 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), |
1111 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1112 |
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()); |
1113 |
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()); |
1114 |
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*>(); |
1115 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
1116 |
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->outputs(), std::vector<Wrapland::Server::WlOutput*>()); |
1117 | |||
1118 | // Create another registry to get notified about added outputs. | ||
1119 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | Wrapland::Client::Registry registry; |
1120 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | registry.setEventQueue(m_queue); |
1121 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy allAnnounced(®istry, &Wrapland::Client::Registry::interfacesAnnounced); |
1122 |
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(allAnnounced.isValid()); |
1123 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | registry.create(m_connection); |
1124 |
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(registry.isValid()); |
1125 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | registry.setup(); |
1126 |
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(allAnnounced.wait()); |
1127 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy outputAnnouncedSpy(®istry, &Wrapland::Client::Registry::outputAnnounced); |
1128 |
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(outputAnnouncedSpy.isValid()); |
1129 | |||
1130 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | auto serverOutput = new Wrapland::Server::output(*server.globals.output_manager); |
1131 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverOutput->add_mode({.size = QSize{1920, 1080}, .id = 0}); |
1132 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | auto state = serverOutput->get_state(); |
1133 | 1 | state.enabled = true; | |
1134 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverOutput->set_state(state); |
1135 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverOutput->done(); |
1136 | |||
1137 |
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(outputAnnouncedSpy.wait()); |
1138 | 1 | std::unique_ptr<Wrapland::Client::Output> clientOutput( | |
1139 |
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.
|
2 | registry.createOutput(outputAnnouncedSpy.first().first().value<quint32>(), |
1140 |
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 | outputAnnouncedSpy.first().last().value<quint32>())); |
1141 |
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(clientOutput->isValid()); |
1142 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_connection->flush(); |
1143 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | server.display->dispatchEvents(); |
1144 | |||
1145 | // Now enter it. | ||
1146 | 1 | std::vector<Wrapland::Server::WlOutput*> outputs; | |
1147 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | outputs.push_back(serverOutput->wayland_output()); |
1148 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->setOutputs(outputs); |
1149 |
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->outputs(), outputs); |
1150 |
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(enteredSpy.wait()); |
1151 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(enteredSpy.count(), 1); |
1152 |
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(enteredSpy.first().first().value<Wrapland::Client::Output*>(), clientOutput.get()); |
1153 |
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(s->outputs(), QVector<Wrapland::Client::Output*>{clientOutput.get()}); |
1154 | |||
1155 | // Adding to same should not trigger. | ||
1156 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | serverSurface->setOutputs(std::vector<Wrapland::Server::output*>{serverOutput}); |
1157 | |||
1158 | // leave again | ||
1159 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->setOutputs(std::vector<Wrapland::Server::output*>()); |
1160 |
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->outputs(), std::vector<Wrapland::Server::WlOutput*>()); |
1161 |
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(leftSpy.wait()); |
1162 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(enteredSpy.count(), 1); |
1163 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(leftSpy.count(), 1); |
1164 |
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(leftSpy.first().first().value<Wrapland::Client::Output*>(), clientOutput.get()); |
1165 |
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(s->outputs(), QVector<Wrapland::Client::Output*>()); |
1166 | |||
1167 | // Leave again should not trigger. | ||
1168 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverSurface->setOutputs(std::vector<Wrapland::Server::output*>()); |
1169 | |||
1170 | // and enter again, just to verify | ||
1171 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | serverSurface->setOutputs(std::vector<Wrapland::Server::output*>{serverOutput}); |
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 | QCOMPARE(serverSurface->outputs(), |
1173 | std::vector<Wrapland::Server::WlOutput*>{serverOutput->wayland_output()}); | ||
1174 |
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(enteredSpy.wait()); |
1175 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(enteredSpy.count(), 2); |
1176 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(leftSpy.count(), 1); |
1177 | |||
1178 | // Delete output client is on. Client should get an exit and be left on no outputs (which is | ||
1179 | // allowed). | ||
1180 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | serverOutput->deleteLater(); |
1181 |
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(leftSpy.wait()); |
1182 |
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 | QCOMPARE(serverSurface->outputs().size(), 0); |
1183 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1184 | |||
1185 | 1 | void TestSurface::testInhibit() | |
1186 | { | ||
1187 | 1 | std::unique_ptr<Wrapland::Client::Surface> s(m_compositor->createSurface()); | |
1188 | // wait for the surface on the Server side | ||
1189 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy surfaceCreatedSpy(server.globals.compositor.get(), |
1190 | &Wrapland::Server::Compositor::surfaceCreated); | ||
1191 |
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()); |
1192 |
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()); |
1193 |
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*>(); |
1194 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | QVERIFY(serverSurface); |
1195 |
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->inhibitsIdle(), false); |
1196 | |||
1197 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | QSignalSpy inhibitsChangedSpy(serverSurface, &Wrapland::Server::Surface::inhibitsIdleChanged); |
1198 |
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(inhibitsChangedSpy.isValid()); |
1199 | |||
1200 | // now create an idle inhibition | ||
1201 | 1 | std::unique_ptr<Wrapland::Client::IdleInhibitor> inhibitor1( | |
1202 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_idleInhibitManager->createInhibitor(s.get())); |
1203 |
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(inhibitsChangedSpy.wait()); |
1204 |
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->inhibitsIdle(), true); |
1205 | |||
1206 | // creating a second idle inhibition should not trigger the signal | ||
1207 | 1 | std::unique_ptr<Wrapland::Client::IdleInhibitor> inhibitor2( | |
1208 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | m_idleInhibitManager->createInhibitor(s.get())); |
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(!inhibitsChangedSpy.wait(500)); |
1210 |
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->inhibitsIdle(), true); |
1211 | |||
1212 | // and also deleting the first inhibitor should not yet change the inhibition | ||
1213 | 1 | inhibitor1.reset(); | |
1214 |
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(!inhibitsChangedSpy.wait(500)); |
1215 |
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->inhibitsIdle(), true); |
1216 | |||
1217 | // but deleting also the second inhibitor should trigger | ||
1218 | 1 | inhibitor2.reset(); | |
1219 |
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(inhibitsChangedSpy.wait()); |
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 | QCOMPARE(serverSurface->inhibitsIdle(), false); |
1221 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(inhibitsChangedSpy.count(), 2); |
1222 | |||
1223 | // recreate inhibitor1 should inhibit again | ||
1224 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | inhibitor1.reset(m_idleInhibitManager->createInhibitor(s.get())); |
1225 |
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(inhibitsChangedSpy.wait()); |
1226 |
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->inhibitsIdle(), true); |
1227 | // and destroying should uninhibit | ||
1228 | 1 | inhibitor1.reset(); | |
1229 |
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(inhibitsChangedSpy.wait()); |
1230 |
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->inhibitsIdle(), false); |
1231 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
1 | QCOMPARE(inhibitsChangedSpy.count(), 4); |
1232 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | } |
1233 | |||
1234 |
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(TestSurface) |
1235 | #include "surface.moc" | ||
1236 |