[autotest] Prepare TestSlide for multiple test cases
Registry was not per test case, cleanup didn't clean up everything, etc. Basically adding a second test case resulted in a crash.
This commit is contained in:
parent
b0b5e16667
commit
aef650df51
1 changed files with 27 additions and 22 deletions
|
@ -32,6 +32,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "../../src/server/region_interface.h"
|
#include "../../src/server/region_interface.h"
|
||||||
#include "../../src/server/slide_interface.h"
|
#include "../../src/server/slide_interface.h"
|
||||||
|
|
||||||
|
using namespace KWayland::Client;
|
||||||
|
|
||||||
class TestSlide : public QObject
|
class TestSlide : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -52,7 +54,6 @@ private:
|
||||||
KWayland::Client::SlideManager *m_slideManager;
|
KWayland::Client::SlideManager *m_slideManager;
|
||||||
KWayland::Client::EventQueue *m_queue;
|
KWayland::Client::EventQueue *m_queue;
|
||||||
QThread *m_thread;
|
QThread *m_thread;
|
||||||
KWayland::Client::Registry m_registry;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const QString s_socketName = QStringLiteral("kwayland-test-wayland-slide-0");
|
static const QString s_socketName = QStringLiteral("kwayland-test-wayland-slide-0");
|
||||||
|
@ -94,43 +95,48 @@ void TestSlide::init()
|
||||||
m_queue->setup(m_connection);
|
m_queue->setup(m_connection);
|
||||||
QVERIFY(m_queue->isValid());
|
QVERIFY(m_queue->isValid());
|
||||||
|
|
||||||
QSignalSpy compositorSpy(&m_registry, SIGNAL(compositorAnnounced(quint32,quint32)));
|
Registry registry;
|
||||||
|
QSignalSpy compositorSpy(®istry, &Registry::compositorAnnounced);
|
||||||
QVERIFY(compositorSpy.isValid());
|
QVERIFY(compositorSpy.isValid());
|
||||||
|
|
||||||
QSignalSpy slideSpy(&m_registry, SIGNAL(slideAnnounced(quint32,quint32)));
|
QSignalSpy slideSpy(®istry, &Registry::slideAnnounced);
|
||||||
QVERIFY(slideSpy.isValid());
|
QVERIFY(slideSpy.isValid());
|
||||||
|
|
||||||
QVERIFY(!m_registry.eventQueue());
|
QVERIFY(!registry.eventQueue());
|
||||||
m_registry.setEventQueue(m_queue);
|
registry.setEventQueue(m_queue);
|
||||||
QCOMPARE(m_registry.eventQueue(), m_queue);
|
QCOMPARE(registry.eventQueue(), m_queue);
|
||||||
m_registry.create(m_connection->display());
|
registry.create(m_connection->display());
|
||||||
QVERIFY(m_registry.isValid());
|
QVERIFY(registry.isValid());
|
||||||
m_registry.setup();
|
registry.setup();
|
||||||
|
|
||||||
m_compositorInterface = m_display->createCompositor(m_display);
|
m_compositorInterface = m_display->createCompositor(m_display);
|
||||||
m_compositorInterface->create();
|
m_compositorInterface->create();
|
||||||
QVERIFY(m_compositorInterface->isValid());
|
QVERIFY(m_compositorInterface->isValid());
|
||||||
|
|
||||||
QVERIFY(compositorSpy.wait());
|
QVERIFY(compositorSpy.wait());
|
||||||
m_compositor = m_registry.createCompositor(compositorSpy.first().first().value<quint32>(), compositorSpy.first().last().value<quint32>(), this);
|
m_compositor = registry.createCompositor(compositorSpy.first().first().value<quint32>(), compositorSpy.first().last().value<quint32>(), this);
|
||||||
|
|
||||||
m_slideManagerInterface = m_display->createSlideManager(m_display);
|
m_slideManagerInterface = m_display->createSlideManager(m_display);
|
||||||
m_slideManagerInterface->create();
|
m_slideManagerInterface->create();
|
||||||
QVERIFY(m_slideManagerInterface->isValid());
|
QVERIFY(m_slideManagerInterface->isValid());
|
||||||
|
|
||||||
QVERIFY(slideSpy.wait());
|
QVERIFY(slideSpy.wait());
|
||||||
m_slideManager = m_registry.createSlideManager(slideSpy.first().first().value<quint32>(), slideSpy.first().last().value<quint32>(), this);
|
m_slideManager = registry.createSlideManager(slideSpy.first().first().value<quint32>(), slideSpy.first().last().value<quint32>(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestSlide::cleanup()
|
void TestSlide::cleanup()
|
||||||
{
|
{
|
||||||
if (m_compositor) {
|
#define CLEANUP(variable) \
|
||||||
delete m_compositor;
|
if (variable) { \
|
||||||
m_compositor = nullptr;
|
delete variable; \
|
||||||
|
variable = nullptr; \
|
||||||
}
|
}
|
||||||
if (m_queue) {
|
CLEANUP(m_compositor)
|
||||||
delete m_queue;
|
CLEANUP(m_slideManager)
|
||||||
m_queue = nullptr;
|
CLEANUP(m_queue)
|
||||||
|
if (m_connection) {
|
||||||
|
m_connection->deleteLater();
|
||||||
|
m_connection = nullptr;
|
||||||
}
|
}
|
||||||
if (m_thread) {
|
if (m_thread) {
|
||||||
m_thread->quit();
|
m_thread->quit();
|
||||||
|
@ -138,11 +144,10 @@ void TestSlide::cleanup()
|
||||||
delete m_thread;
|
delete m_thread;
|
||||||
m_thread = nullptr;
|
m_thread = nullptr;
|
||||||
}
|
}
|
||||||
delete m_connection;
|
CLEANUP(m_compositorInterface)
|
||||||
m_connection = nullptr;
|
CLEANUP(m_slideManagerInterface)
|
||||||
|
CLEANUP(m_display)
|
||||||
delete m_display;
|
#undef CLEANUP
|
||||||
m_display = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestSlide::testCreate()
|
void TestSlide::testCreate()
|
||||||
|
|
Loading…
Reference in a new issue