diff --git a/autotests/integration/CMakeLists.txt b/autotests/integration/CMakeLists.txt index efd1ed3aaf..2ba2904d2c 100644 --- a/autotests/integration/CMakeLists.txt +++ b/autotests/integration/CMakeLists.txt @@ -74,7 +74,6 @@ integrationTest(NAME testDontCrashEmptyDeco SRCS dont_crash_empty_deco.cpp) integrationTest(NAME testPlasmaSurface SRCS plasma_surface_test.cpp) integrationTest(NAME testMaximized SRCS maximize_test.cpp) integrationTest(NAME testXdgShellWindow SRCS xdgshellwindow_test.cpp) -integrationTest(NAME testDontCrashNoBorder SRCS dont_crash_no_border.cpp) integrationTest(NAME testXwaylandSelections SRCS xwayland_selections_test.cpp) integrationTest(NAME testSceneOpenGL SRCS scene_opengl_test.cpp ) integrationTest(NAME testSceneOpenGLES SRCS scene_opengl_es_test.cpp ) diff --git a/autotests/integration/dont_crash_no_border.cpp b/autotests/integration/dont_crash_no_border.cpp deleted file mode 100644 index 137b503d13..0000000000 --- a/autotests/integration/dont_crash_no_border.cpp +++ /dev/null @@ -1,111 +0,0 @@ - -/* - KWin - the KDE window manager - This file is part of the KDE project. - - SPDX-FileCopyrightText: 2016 Martin Gräßlin - - SPDX-License-Identifier: GPL-2.0-or-later -*/ -#include "kwin_wayland_test.h" - -#include "composite.h" -#include "core/output.h" -#include "core/outputbackend.h" -#include "core/renderbackend.h" -#include "libkwineffects/kwineffects.h" -#include "pointer_input.h" -#include "wayland_server.h" -#include "workspace.h" -#include "x11window.h" - -#include - -#include - -#include - -namespace KWin -{ - -static const QString s_socketName = QStringLiteral("wayland_test_kwin_dont_crash_no_border-0"); - -class DontCrashNoBorder : public QObject -{ - Q_OBJECT -private Q_SLOTS: - void initTestCase(); - void init(); - void cleanup(); - void testCreateWindow(); -}; - -void DontCrashNoBorder::initTestCase() -{ - if (!Test::renderNodeAvailable()) { - QSKIP("no render node available"); - return; - } - qRegisterMetaType(); - QSignalSpy applicationStartedSpy(kwinApp(), &Application::started); - QVERIFY(waylandServer()->init(s_socketName)); - QMetaObject::invokeMethod(kwinApp()->outputBackend(), "setVirtualOutputs", Qt::DirectConnection, Q_ARG(QVector, QVector() << QRect(0, 0, 1280, 1024) << QRect(1280, 0, 1280, 1024))); - - KSharedConfig::Ptr config = KSharedConfig::openConfig(QString(), KConfig::SimpleConfig); - config->group("org.kde.kdecoration2").writeEntry("NoPlugin", true); - config->sync(); - kwinApp()->setConfig(config); - - // this test needs to enforce OpenGL compositing to get into the crashy condition - qputenv("KWIN_COMPOSE", QByteArrayLiteral("O2")); - kwinApp()->start(); - QVERIFY(applicationStartedSpy.wait()); - const auto outputs = workspace()->outputs(); - QCOMPARE(outputs.count(), 2); - QCOMPARE(outputs[0]->geometry(), QRect(0, 0, 1280, 1024)); - QCOMPARE(outputs[1]->geometry(), QRect(1280, 0, 1280, 1024)); - setenv("QT_QPA_PLATFORM", "wayland", true); - - QCOMPARE(Compositor::self()->backend()->compositingType(), KWin::OpenGLCompositing); -} - -void DontCrashNoBorder::init() -{ - QVERIFY(Test::setupWaylandConnection(Test::AdditionalWaylandInterface::XdgDecorationV1)); - - workspace()->setActiveOutput(QPoint(640, 512)); - input()->pointer()->warp(QPoint(640, 512)); -} - -void DontCrashNoBorder::cleanup() -{ - Test::destroyWaylandConnection(); -} - -void DontCrashNoBorder::testCreateWindow() -{ - // create a window and ensure that this doesn't crash - std::unique_ptr surface(Test::createSurface()); - std::unique_ptr shellSurface(Test::createXdgToplevelSurface(surface.get(), Test::CreationSetup::CreateOnly)); - std::unique_ptr decoration(Test::createXdgToplevelDecorationV1(shellSurface.get())); - QSignalSpy decorationConfigureRequestedSpy(decoration.get(), &Test::XdgToplevelDecorationV1::configureRequested); - QSignalSpy surfaceConfigureRequestedSpy(shellSurface->xdgSurface(), &Test::XdgSurface::configureRequested); - - // Initialize the xdg-toplevel surface. - decoration->set_mode(Test::XdgToplevelDecorationV1::mode_server_side); - surface->commit(KWayland::Client::Surface::CommitFlag::None); - QVERIFY(surfaceConfigureRequestedSpy.wait()); - QCOMPARE(decorationConfigureRequestedSpy.last().at(0).value(), Test::XdgToplevelDecorationV1::mode_client_side); - - // let's render - shellSurface->xdgSurface()->ack_configure(surfaceConfigureRequestedSpy.last().at(0).value()); - auto window = Test::renderAndWaitForShown(surface.get(), QSize(500, 50), Qt::blue); - QVERIFY(window); - QCOMPARE(workspace()->activeWindow(), window); - QVERIFY(!window->isDecorated()); -} - -} - -WAYLANDTEST_MAIN(KWin::DontCrashNoBorder) -#include "dont_crash_no_border.moc"