From 99b8aa0969eb84413c7bb0a1012969efad8bb0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 12 Oct 2024 19:30:03 +0200 Subject: [PATCH] Platform: merge GlxApplication and XEglApplication tests. It's a single interface, it doesn't make sense to have two only slightly different test files for it. --- ...nTest.cpp => AbstractXApplicationTest.cpp} | 14 ++-- src/Magnum/Platform/Test/CMakeLists.txt | 6 +- .../Platform/Test/GlxApplicationTest.cpp | 66 ------------------- 3 files changed, 14 insertions(+), 72 deletions(-) rename src/Magnum/Platform/Test/{XEglApplicationTest.cpp => AbstractXApplicationTest.cpp} (84%) delete mode 100644 src/Magnum/Platform/Test/GlxApplicationTest.cpp diff --git a/src/Magnum/Platform/Test/XEglApplicationTest.cpp b/src/Magnum/Platform/Test/AbstractXApplicationTest.cpp similarity index 84% rename from src/Magnum/Platform/Test/XEglApplicationTest.cpp rename to src/Magnum/Platform/Test/AbstractXApplicationTest.cpp index 9d94b02d3..2c131dd71 100644 --- a/src/Magnum/Platform/Test/XEglApplicationTest.cpp +++ b/src/Magnum/Platform/Test/AbstractXApplicationTest.cpp @@ -26,14 +26,20 @@ #include +#ifdef BUILD_GLXAPPLICATION +#include "Magnum/Platform/GlxApplication.h" +#elif defined(BUILD_XEGLAPPLICATION) #include "Magnum/Platform/XEglApplication.h" +#else +#error +#endif namespace Magnum { namespace Platform { namespace Test { namespace { using namespace Containers::Literals; -struct XEglApplicationTest: Platform::Application { - explicit XEglApplicationTest(const Arguments& arguments); +struct AbstractXApplicationTest: Platform::Application { + explicit AbstractXApplicationTest(const Arguments& arguments); void drawEvent() override { Debug{} << "draw event"; @@ -41,7 +47,7 @@ struct XEglApplicationTest: Platform::Application { } }; -XEglApplicationTest::XEglApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { +AbstractXApplicationTest::AbstractXApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("exit-immediately").setHelp("exit-immediately", "exit the application immediately from the constructor, to test that the app doesn't run any event handlers after") @@ -63,4 +69,4 @@ XEglApplicationTest::XEglApplicationTest(const Arguments& arguments): Platform:: }}}} -MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::XEglApplicationTest) +MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::AbstractXApplicationTest) diff --git a/src/Magnum/Platform/Test/CMakeLists.txt b/src/Magnum/Platform/Test/CMakeLists.txt index f130b6bdc..ffd3834f5 100644 --- a/src/Magnum/Platform/Test/CMakeLists.txt +++ b/src/Magnum/Platform/Test/CMakeLists.txt @@ -120,7 +120,8 @@ if(MAGNUM_WITH_GLFWAPPLICATION) endif() if(MAGNUM_WITH_GLXAPPLICATION) - add_executable(PlatformGlxApplicationTest GlxApplicationTest.cpp) + add_executable(PlatformGlxApplicationTest AbstractXApplicationTest.cpp) + target_compile_definitions(PlatformGlxApplicationTest PRIVATE BUILD_GLXAPPLICATION) target_link_libraries(PlatformGlxApplicationTest PRIVATE MagnumGlxApplication) endif() @@ -161,7 +162,8 @@ if(MAGNUM_WITH_SDL2APPLICATION) endif() if(MAGNUM_WITH_XEGLAPPLICATION) - add_executable(PlatformXEglApplicationTest XEglApplicationTest.cpp) + add_executable(PlatformXEglApplicationTest AbstractXApplicationTest.cpp) + target_compile_definitions(PlatformXEglApplicationTest PRIVATE BUILD_XEGLAPPLICATION) target_link_libraries(PlatformXEglApplicationTest PRIVATE MagnumXEglApplication) endif() diff --git a/src/Magnum/Platform/Test/GlxApplicationTest.cpp b/src/Magnum/Platform/Test/GlxApplicationTest.cpp deleted file mode 100644 index 693ac1606..000000000 --- a/src/Magnum/Platform/Test/GlxApplicationTest.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - This file is part of Magnum. - - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, 2024 - Vladimír Vondruš - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. -*/ - -#include - -#include "Magnum/Platform/GlxApplication.h" - -namespace Magnum { namespace Platform { namespace Test { namespace { - -using namespace Containers::Literals; - -struct GlxApplicationTest: Platform::Application { - explicit GlxApplicationTest(const Arguments& arguments); - - void drawEvent() override { - Debug{} << "draw event"; - swapBuffers(); - } -}; - -GlxApplicationTest::GlxApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { - Utility::Arguments args; - args.addSkippedPrefix("magnum", "engine-specific options") - .addBooleanOption("exit-immediately").setHelp("exit-immediately", "exit the application immediately from the constructor, to test that the app doesn't run any event handlers after") - .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") - .parse(arguments.argc, arguments.argv); - - if(args.isSet("exit-immediately")) { - exit(); - return; - } - - Configuration conf; - conf.setTitle("Window title that should have no exclamation mark!!"_s.exceptSuffix(2)); - if(args.isSet("quiet")) - create(conf, GLConfiguration{}.addFlags(GLConfiguration::Flag::QuietLog)); - else - create(conf); -} - -}}}} - -MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::GlxApplicationTest)