diff --git a/CMakeLists.txt b/CMakeLists.txt index c7873928a..30165a412 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -165,6 +165,11 @@ if(BUILD_TESTS) enable_testing() endif() +# OpenGLTester library, built by default only if GL tests are enabled +if(NOT CORRADE_TARGET_NACL AND NOT CORRADE_TARGET_ANDROID AND NOT CORRADE_TARGET_EMSCRIPTEN) + cmake_dependent_option(WITH_OPENGLTESTER "Build OpenGLTester library" OFF "NOT BUILD_GL_TESTS" ON) +endif() + # If targeting NaCl, set explicit OpenGL ES 2.0 support. For Android and # Emscripten the decision between ES 2.0 / WebGL 1.0 and ES 3.0 / WebGL 2.0 # must be done by the user. @@ -216,33 +221,34 @@ if(CORRADE_TARGET_EMSCRIPTEN) include(UseEmscripten) endif() -if(BUILD_GL_TESTS) +if(WITH_OPENGLTESTER) if(MAGNUM_TARGET_HEADLESS) set(WITH_WINDOWLESSEGLAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessEglApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessEglApplication) elseif(CORRADE_TARGET_IOS) set(WITH_WINDOWLESSIOSAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessIosApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessIosApplication) elseif(CORRADE_TARGET_APPLE) set(WITH_WINDOWLESSCGLAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessCglApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessCglApplication) elseif(CORRADE_TARGET_UNIX) if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) set(WITH_WINDOWLESSEGLAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessEglApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessEglApplication) else() set(WITH_WINDOWLESSGLXAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessGlxApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessGlxApplication) endif() elseif(CORRADE_TARGET_WINDOWS) if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES) set(WITH_WINDOWLESSWGLAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessWglApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessWglApplication) else() set(WITH_WINDOWLESSWINDOWSEGLAPPLICATION ON) - set(GL_TEST_LIBRARIES Magnum MagnumWindowlessWindowsEglApplication) + set(OPENGLTESTER_APPLICATION MagnumWindowlessWindowsEglApplication) endif() else() + # Assuming this gets hit only if BUILD_GL_TESTS are enabled message(FATAL_ERROR "Cannot run tests for OpenGL code on this platform. Set BUILD_GL_TESTS to OFF to skip building them.") endif() endif() diff --git a/doc/building.dox b/doc/building.dox index 540365d3c..bf7d67711 100644 --- a/doc/building.dox +++ b/doc/building.dox @@ -228,6 +228,12 @@ information): - `WITH_GLXCONTEXT` -- GLX context - `WITH_WGLCONTEXT` -- WGL context +There are also extensions to @ref Corrade::TestSuite::Tester for testing GPU +code: + +- `WITH_OPENGLTESTER` -- @ref OpenGLTester class. Enables building of one of + `Platform::Windowless*Application` libraries based on platform. + Magnum also contains a set of dependency-less plugins for importing essential file formats. Additional plugins are provided in separate plugin repository, see @ref building-plugins for more information. None of the plugins is built by @@ -272,10 +278,10 @@ information. In particular, if you specify them as relative paths, the path will be taken relative to executable location, which is useful for making relocatable installations. -Note that [each namespace](namespaces.html) and all @ref Platform libraries -contain more detailed information about dependencies, availability on -particular platform and also guide how to enable given library in build and use -it with CMake. +Note that [each namespace](namespaces.html), all @ref Platform libraries and +the @ref OpenGLTester class contain more detailed information about +dependencies, availability on particular platform and also guide how to enable +given library in build and use it with CMake. @subsection building-tests Building and running unit tests diff --git a/doc/cmake.dox b/doc/cmake.dox index 9bd1fbce7..44f32299d 100644 --- a/doc/cmake.dox +++ b/doc/cmake.dox @@ -119,6 +119,11 @@ information): - `GlxContext` -- GLX context - `WglContext` -- WGL context +There are also extensions to @ref Corrade::TestSuite::Tester for testing GPU +code: + +- `OpenGLTester` -- @ref OpenGLTester class + The library also contains a set of plugins for importing essential file formats. Additional plugins are provided in separate plugin repository, see @ref cmake-plugins for more information. If you are going to use dynamic diff --git a/doc/namespaces.dox b/doc/namespaces.dox index a093e8c6b..65f8a120c 100644 --- a/doc/namespaces.dox +++ b/doc/namespaces.dox @@ -31,9 +31,9 @@ Contains classes for interacting with OpenGL. -This library is built as part of Magnum by default. To use it, you need to -find `Magnum` package and link to `Magnum::Magnum` target. See @ref building -and @ref cmake for more information. +All of this library except @ref OpenGLTester is built as part of Magnum by +default. To use it, you need to find `Magnum` package and link to `Magnum::Magnum` +target. See @ref building and @ref cmake for more information. */ /** @dir Magnum/Platform diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 439e87413..ced8de06f 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -64,6 +64,7 @@ # EglContext - EGL context # GlxContext - GLX context # WglContext - WGL context +# OpenGLTester - OpenGLTester class # MagnumFont - Magnum bitmap font plugin # MagnumFontConverter - Magnum bitmap font converter plugin # ObjImporter - OBJ importer plugin @@ -330,6 +331,26 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES TextureTools) elseif(_component STREQUAL DebugTools) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES MeshTools Primitives SceneGraph Shaders Shapes) + elseif(_component STREQUAL OpenGLTester) + if(MAGNUM_TARGET_HEADLESS) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessEglApplication) + elseif(CORRADE_TARGET_IOS) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessIosApplication) + elseif(CORRADE_TARGET_APPLE) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessCglApplication) + elseif(CORRADE_TARGET_UNIX) + if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessEglApplication) + else() + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessGlxApplication) + endif() + elseif(CORRADE_TARGET_WINDOWS) + if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessWglApplication) + else() + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessWindowsEglApplication) + endif() + endif() elseif(_component STREQUAL MagnumFont) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES TgaImporter) # and below elseif(_component STREQUAL MagnumFontConverter) @@ -364,7 +385,7 @@ endif() # Component distinction (listing them explicitly to avoid mistakes with finding # components from other repositories) -set(_MAGNUM_LIBRARY_COMPONENTS "^(Audio|DebugTools|MeshTools|Primitives|SceneGraph|Shaders|Shapes|Text|TextureTools|AndroidApplication|GlfwApplication|GlutApplication|GlxApplication|NaClApplication|Sdl2Application|XEglApplication|WindowlessCglApplication|WindowlessEglApplication|WindowlessGlxApplication|WindowlessIosApplication|WindowlessNaClApplication|WindowlessWglApplication|WindowlessWindowsEglApplication|CglContext|EglContext|GlxContext|WglContext)$") +set(_MAGNUM_LIBRARY_COMPONENTS "^(Audio|DebugTools|MeshTools|Primitives|SceneGraph|Shaders|Shapes|Text|TextureTools|AndroidApplication|GlfwApplication|GlutApplication|GlxApplication|NaClApplication|Sdl2Application|XEglApplication|WindowlessCglApplication|WindowlessEglApplication|WindowlessGlxApplication|WindowlessIosApplication|WindowlessNaClApplication|WindowlessWglApplication|WindowlessWindowsEglApplication|CglContext|EglContext|GlxContext|WglContext|OpenGLTester)$") set(_MAGNUM_PLUGIN_COMPONENTS "^(MagnumFont|MagnumFontConverter|ObjImporter|TgaImageConverter|TgaImporter|WavAudioImporter)$") set(_MAGNUM_EXECUTABLE_COMPONENTS "^(distancefieldconverter|fontconverter|imageconverter|info|al-info)$") @@ -593,10 +614,14 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) # No special setup for DebugTools library - # Mesh tools library + # MeshTools library elseif(_component STREQUAL MeshTools) set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES CompressIndices.h) + # OpenGLTester library + elseif(_component STREQUAL OpenGLTester) + set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_SUFFIX Magnum) + # Primitives library elseif(_component STREQUAL Primitives) set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Cube.h) diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index ac71a6b53..92ea41f30 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -118,9 +118,6 @@ set(Magnum_HEADERS visibility.h) -set(MagnumTest_HEADERS - Test/AbstractOpenGLTester.h) - # Header files to display in project view of IDEs only set(Magnum_PRIVATE_HEADERS Implementation/BufferState.h @@ -165,7 +162,6 @@ if(NOT TARGET_GLES2) list(APPEND Magnum_PRIVATE_HEADES Implementation/TransformFeedbackState.h) - endif() # Desktop and OpenGL ES stuff that is not available in WebGL @@ -249,7 +245,6 @@ add_library(Magnum ${SHARED_OR_STATIC} ${Magnum_SRCS} ${Magnum_HEADERS} ${Magnum_PRIVATE_HEADERS} - ${MagnumTest_HEADERS} $) set_target_properties(Magnum PROPERTIES DEBUG_POSTFIX "-d") if(NOT BUILD_STATIC) @@ -280,9 +275,43 @@ install(TARGETS Magnum LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) install(FILES ${Magnum_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}) -install(FILES ${MagnumTest_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Test) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}) +# OpenGLTester class +if(WITH_OPENGLTESTER) + find_package(Corrade REQUIRED TestSuite) + + set(MagnumOpenGLTester_SRCS OpenGLTester.cpp) + set(MagnumOpenGLTester_HEADERS OpenGLTester.h) + if(BUILD_DEPRECATED) + set(MagnumOpenGLTester_DEPRECATED_HEADERS Test/AbstractOpenGLTester.h) + endif() + + add_library(MagnumOpenGLTester STATIC + ${MagnumOpenGLTester_SRCS} + ${MagnumOpenGLTester_HEADERS} + ${MagnumOpenGLTester_DEPRECATED_HEADERS}) # TODO: remove when the header is removed + set_target_properties(MagnumOpenGLTester PROPERTIES DEBUG_POSTFIX "-d") + # Assuming that PIC is not needed because the Tester lib is always linked + # to the executable and not to any intermediate shared lib + + # OPENGLTESTER_APPLICATION defined in the root CMakeLists, because it also + # enables the application library dependencies + target_link_libraries(MagnumOpenGLTester Magnum Corrade::TestSuite ${OPENGLTESTER_APPLICATION}) + + install(FILES ${MagnumOpenGLTester_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}) + if(BUILD_DEPRECATED) + install(FILES ${MagnumOpenGLTester_DEPRECATED_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Test) + endif() + install(TARGETS MagnumOpenGLTester + RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} + LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} + ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) + + # Magnum OpenGLTester target alias for superprojects + add_library(Magnum::OpenGLTester ALIAS MagnumOpenGLTester) +endif() + add_subdirectory(Math) add_subdirectory(Platform) add_subdirectory(Trade) diff --git a/src/Magnum/DebugTools/Test/BufferDataGLTest.cpp b/src/Magnum/DebugTools/Test/BufferDataGLTest.cpp index c9985ae26..33ac59324 100644 --- a/src/Magnum/DebugTools/Test/BufferDataGLTest.cpp +++ b/src/Magnum/DebugTools/Test/BufferDataGLTest.cpp @@ -25,12 +25,12 @@ #include +#include "Magnum/OpenGLTester.h" #include "Magnum/DebugTools/BufferData.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace DebugTools { namespace Test { -struct BufferDataGLTest: Magnum::Test::AbstractOpenGLTester { +struct BufferDataGLTest: Magnum::OpenGLTester { explicit BufferDataGLTest(); void data(); @@ -68,4 +68,4 @@ void BufferDataGLTest::subData() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::DebugTools::Test::BufferDataGLTest) +CORRADE_TEST_MAIN(Magnum::DebugTools::Test::BufferDataGLTest) diff --git a/src/Magnum/DebugTools/Test/CMakeLists.txt b/src/Magnum/DebugTools/Test/CMakeLists.txt index b200d2b95..ccef477e3 100644 --- a/src/Magnum/DebugTools/Test/CMakeLists.txt +++ b/src/Magnum/DebugTools/Test/CMakeLists.txt @@ -38,6 +38,6 @@ if(Corrade_TestSuite_FOUND) endif() if(BUILD_GL_TESTS) - corrade_add_test(DebugToolsBufferDataGLTest BufferDataGLTest.cpp LIBRARIES MagnumDebugTools ${GL_TEST_LIBRARIES}) - corrade_add_test(DebugToolsTextureImageGLTest TextureImageGLTest.cpp LIBRARIES MagnumDebugTools ${GL_TEST_LIBRARIES}) + corrade_add_test(DebugToolsBufferDataGLTest BufferDataGLTest.cpp LIBRARIES MagnumDebugTools MagnumOpenGLTester) + corrade_add_test(DebugToolsTextureImageGLTest TextureImageGLTest.cpp LIBRARIES MagnumDebugTools MagnumOpenGLTester) endif() diff --git a/src/Magnum/DebugTools/Test/TextureImageGLTest.cpp b/src/Magnum/DebugTools/Test/TextureImageGLTest.cpp index 72e77136d..e72b68e06 100644 --- a/src/Magnum/DebugTools/Test/TextureImageGLTest.cpp +++ b/src/Magnum/DebugTools/Test/TextureImageGLTest.cpp @@ -27,13 +27,13 @@ #include "Magnum/CubeMapTexture.h" #include "Magnum/Image.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/Texture.h" #include "Magnum/TextureFormat.h" #include "Magnum/DebugTools/BufferData.h" #include "Magnum/DebugTools/TextureImage.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" #ifndef MAGNUM_TARGET_GLES2 #include "Magnum/BufferImage.h" @@ -41,7 +41,7 @@ namespace Magnum { namespace DebugTools { namespace Test { -struct TextureImageGLTest: Magnum::Test::AbstractOpenGLTester { +struct TextureImageGLTest: OpenGLTester { explicit TextureImageGLTest(); void subImage2D(); @@ -200,4 +200,4 @@ void TextureImageGLTest::subImage2DFloat() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::DebugTools::Test::TextureImageGLTest) +CORRADE_TEST_MAIN(Magnum::DebugTools::Test::TextureImageGLTest) diff --git a/src/Magnum/OpenGLTester.cpp b/src/Magnum/OpenGLTester.cpp new file mode 100644 index 000000000..5a28fef49 --- /dev/null +++ b/src/Magnum/OpenGLTester.cpp @@ -0,0 +1,56 @@ +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + 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 "OpenGLTester.h" + +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" +#include "Magnum/DebugOutput.h" + +namespace Magnum { + +OpenGLTester::OpenGLTester(): TestSuite::Tester{TestSuite::Tester::TesterConfiguration{}.setSkippedArgumentPrefixes({"magnum"})}, _windowlessApplication{{arguments().first, arguments().second}} { + /* Try to create debug context, fallback to normal one if not possible. No + such thing on OSX or iOS. */ + #ifndef CORRADE_TARGET_APPLE + if(!_windowlessApplication.tryCreateContext(Platform::WindowlessApplication::Configuration{}.setFlags(Platform::WindowlessApplication::Configuration::Flag::Debug))) + _windowlessApplication.createContext(); + #else + _windowlessApplication.createContext(); + #endif + + if(Context::current().isExtensionSupported()) { + Renderer::enable(Renderer::Feature::DebugOutput); + Renderer::enable(Renderer::Feature::DebugOutputSynchronous); + DebugOutput::setDefaultCallback(); + + /* Disable "Buffer detailed info" message on NV (too spammy) */ + DebugOutput::setEnabled(DebugOutput::Source::Api, DebugOutput::Type::Other, {131185}, false); + } +} + +OpenGLTester::~OpenGLTester() = default; + +} diff --git a/src/Magnum/OpenGLTester.h b/src/Magnum/OpenGLTester.h new file mode 100644 index 000000000..284d64602 --- /dev/null +++ b/src/Magnum/OpenGLTester.h @@ -0,0 +1,134 @@ +#ifndef Magnum_OpenGLTester_h +#define Magnum_OpenGLTester_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 + 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. +*/ + +/** @file + * @brief Class @ref Magnum::OpenGLTester + */ + +#include + +#include "Magnum/Renderer.h" + +#ifdef MAGNUM_TARGET_HEADLESS +#include "Magnum/Platform/WindowlessEglApplication.h" +#elif defined(CORRADE_TARGET_IOS) +#include "Magnum/Platform/WindowlessIosApplication.h" +#elif defined(CORRADE_TARGET_APPLE) +#include "Magnum/Platform/WindowlessCglApplication.h" +#elif defined(CORRADE_TARGET_UNIX) +#if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_DESKTOP_GLES) +#include "Magnum/Platform/WindowlessEglApplication.h" +#else +#include "Magnum/Platform/WindowlessGlxApplication.h" +#endif +#elif defined(CORRADE_TARGET_WINDOWS) +#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_DESKTOP_GLES) +#include "Magnum/Platform/WindowlessWglApplication.h" +#else +#include "Magnum/Platform/WindowlessWindowsEglApplication.h" +#endif +#else +#error cannot run OpenGL tests on this platform +#endif + +namespace Magnum { + +/** +@brief Base class for OpenGL tests and benchmarks + +Extends @ref Corrade::TestSuite::Tester with features for OpenGL testing and +benchmarking. Be sure to read its documentation first to have an overview of +the base features. + +This class is available only on platforms with corresponding +`Platform::Windowless*Application` implementation. That currently means all +platforms except @ref CORRADE_TARGET_ANDROID "Android", +@ref CORRADE_TARGET_EMSCRIPTEN "Emscripten" and @ref CORRADE_TARGET_NACL "NaCl". +It is built into a separate static library and only if `WITH_OPENGLTESTER` is +enabled when building Magnum. To use it, you need to request `OpenGLTester` +component of `Magnum` package in CMake, derive your test class from this class +instead of @ref Corrade::TestSuite::Tester and either link to +`Magnum::OpenGLTester` target or add it to `LIBRARIES` section of the +@ref corrade-cmake-add-test "corrade_add_test()" macro. See @ref building and +@ref cmake for more information. + +## OpenGL context creation + +Upon construction the class creates an OpenGL context, meaning you don't have +to worry about OpenGL context being available during the tests. If the context +creation fails, the test executable exits with non-zero return code. The tester +uses a single OpenGL context for all test cases, meaning you can share +precalculated state among test cases, but on the other hand potential OpenGL +misuses will propagate to following test cases. See +@ref TestSuite-Tester-command-line "command-line option overview" for a way +to run single isolated test cases. + +## Debug context and error checking + +On platforms that support it, the OpenGL context is created with synchronous +debug output, meaning that every OpenGL error is directly reported to standard +output. While it is possible, the tester class doesn't abort the test cases +upon encountering a GL error -- this should be done explicitly with +@ref MAGNUM_VERIFY_NO_ERROR() instead, as the debug output is not available on +all platforms and not all GL errors are fatal. +*/ +class OpenGLTester: public TestSuite::Tester { + public: + /** + * @brief Constructor + * + * Creates an OpenGL context. + */ + explicit OpenGLTester(); + + ~OpenGLTester(); + + private: + struct WindowlessApplication: Platform::WindowlessApplication { + explicit WindowlessApplication(const Arguments& arguments): Platform::WindowlessApplication{arguments, NoCreate} {} + int exec() override final { return 0; } + + using Platform::WindowlessApplication::tryCreateContext; + using Platform::WindowlessApplication::createContext; + + } _windowlessApplication; +}; + +/** @hideinitializer +@relatesalso Magnum::OpenGLTester +@brief Verify that no OpenGL error occurred + +Equivalent to +@code +CORRADE_COMPARE(Magnum::Renderer::error(), Magnum::Renderer::Error::NoError) +@endcode +*/ +#define MAGNUM_VERIFY_NO_ERROR() CORRADE_COMPARE(Magnum::Renderer::error(), Magnum::Renderer::Error::NoError) + +} + +#endif diff --git a/src/Magnum/Shaders/Test/CMakeLists.txt b/src/Magnum/Shaders/Test/CMakeLists.txt index 360936f2d..76e219d95 100644 --- a/src/Magnum/Shaders/Test/CMakeLists.txt +++ b/src/Magnum/Shaders/Test/CMakeLists.txt @@ -24,10 +24,10 @@ # if(BUILD_GL_TESTS) - corrade_add_test(ShadersDistanceFieldVectorGLTest DistanceFieldVectorGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) - corrade_add_test(ShadersFlatGLTest FlatGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) - corrade_add_test(ShadersMeshVisualizerGLTest MeshVisualizerGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) - corrade_add_test(ShadersPhongGLTest PhongGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) - corrade_add_test(ShadersVectorGLTest VectorGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) - corrade_add_test(ShadersVertexColorGLTest VertexColorGLTest.cpp LIBRARIES MagnumShaders ${GL_TEST_LIBRARIES}) + corrade_add_test(ShadersDistanceFieldVectorGLTest DistanceFieldVectorGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) + corrade_add_test(ShadersFlatGLTest FlatGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) + corrade_add_test(ShadersMeshVisualizerGLTest MeshVisualizerGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) + corrade_add_test(ShadersPhongGLTest PhongGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) + corrade_add_test(ShadersVectorGLTest VectorGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) + corrade_add_test(ShadersVertexColorGLTest VertexColorGLTest.cpp LIBRARIES MagnumShaders MagnumOpenGLTester) endif() diff --git a/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp b/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp index 5d2893f0c..f97112ff9 100644 --- a/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp +++ b/src/Magnum/Shaders/Test/DistanceFieldVectorGLTest.cpp @@ -23,12 +23,12 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/DistanceFieldVector.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct DistanceFieldVectorGLTest: Magnum::Test::AbstractOpenGLTester { +struct DistanceFieldVectorGLTest: OpenGLTester { explicit DistanceFieldVectorGLTest(); void compile2D(); @@ -62,4 +62,4 @@ void DistanceFieldVectorGLTest::compile3D() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::DistanceFieldVectorGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::DistanceFieldVectorGLTest) diff --git a/src/Magnum/Shaders/Test/FlatGLTest.cpp b/src/Magnum/Shaders/Test/FlatGLTest.cpp index 276a7f0df..f37242487 100644 --- a/src/Magnum/Shaders/Test/FlatGLTest.cpp +++ b/src/Magnum/Shaders/Test/FlatGLTest.cpp @@ -23,12 +23,12 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/Flat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct FlatGLTest: Magnum::Test::AbstractOpenGLTester { +struct FlatGLTest: OpenGLTester { explicit FlatGLTest(); void compile2D(); @@ -86,4 +86,4 @@ void FlatGLTest::compile3DTextured() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::FlatGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::FlatGLTest) diff --git a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp index 806b4ddee..115202095 100644 --- a/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp +++ b/src/Magnum/Shaders/Test/MeshVisualizerGLTest.cpp @@ -25,12 +25,12 @@ #include "Magnum/Context.h" #include "Magnum/Extensions.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/MeshVisualizer.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct MeshVisualizerGLTest: Magnum::Test::AbstractOpenGLTester { +struct MeshVisualizerGLTest: OpenGLTester { explicit MeshVisualizerGLTest(); void compile(); @@ -95,4 +95,4 @@ void MeshVisualizerGLTest::compileWireframeNoGeometryShader() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::MeshVisualizerGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::MeshVisualizerGLTest) diff --git a/src/Magnum/Shaders/Test/PhongGLTest.cpp b/src/Magnum/Shaders/Test/PhongGLTest.cpp index 6bfd000b8..837fdbdbc 100644 --- a/src/Magnum/Shaders/Test/PhongGLTest.cpp +++ b/src/Magnum/Shaders/Test/PhongGLTest.cpp @@ -23,12 +23,12 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/Phong.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct PhongGLTest: Magnum::Test::AbstractOpenGLTester { +struct PhongGLTest: OpenGLTester { explicit PhongGLTest(); void compile(); @@ -134,4 +134,4 @@ void PhongGLTest::compileAmbientDiffuseSpecularTexture() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::PhongGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::PhongGLTest) diff --git a/src/Magnum/Shaders/Test/VectorGLTest.cpp b/src/Magnum/Shaders/Test/VectorGLTest.cpp index 718af5f38..82ebbf849 100644 --- a/src/Magnum/Shaders/Test/VectorGLTest.cpp +++ b/src/Magnum/Shaders/Test/VectorGLTest.cpp @@ -23,12 +23,12 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/Vector.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct VectorGLTest: Magnum::Test::AbstractOpenGLTester { +struct VectorGLTest: OpenGLTester { explicit VectorGLTest(); void compile2D(); @@ -62,4 +62,4 @@ void VectorGLTest::compile3D() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::VectorGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::VectorGLTest) diff --git a/src/Magnum/Shaders/Test/VertexColorGLTest.cpp b/src/Magnum/Shaders/Test/VertexColorGLTest.cpp index 4298f2124..91dee717b 100644 --- a/src/Magnum/Shaders/Test/VertexColorGLTest.cpp +++ b/src/Magnum/Shaders/Test/VertexColorGLTest.cpp @@ -23,12 +23,12 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/OpenGLTester.h" #include "Magnum/Shaders/VertexColor.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Shaders { namespace Test { -struct VertexColorGLTest: Magnum::Test::AbstractOpenGLTester { +struct VertexColorGLTest: OpenGLTester { explicit VertexColorGLTest(); void compile2D(); @@ -62,4 +62,4 @@ void VertexColorGLTest::compile3D() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Shaders::Test::VertexColorGLTest) +CORRADE_TEST_MAIN(Magnum::Shaders::Test::VertexColorGLTest) diff --git a/src/Magnum/Test/AbstractObjectGLTest.cpp b/src/Magnum/Test/AbstractObjectGLTest.cpp index b8dc3db89..64f93f92d 100644 --- a/src/Magnum/Test/AbstractObjectGLTest.cpp +++ b/src/Magnum/Test/AbstractObjectGLTest.cpp @@ -26,11 +26,11 @@ #include "Magnum/Buffer.h" #include "Magnum/Context.h" #include "Magnum/Extensions.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct AbstractObjectGLTest: AbstractOpenGLTester { +struct AbstractObjectGLTest: OpenGLTester { explicit AbstractObjectGLTest(); void labelNoOp(); @@ -54,4 +54,4 @@ void AbstractObjectGLTest::labelNoOp() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::AbstractObjectGLTest) +CORRADE_TEST_MAIN(Magnum::Test::AbstractObjectGLTest) diff --git a/src/Magnum/Test/AbstractOpenGLTester.h b/src/Magnum/Test/AbstractOpenGLTester.h index ff4fd3685..89798b15d 100644 --- a/src/Magnum/Test/AbstractOpenGLTester.h +++ b/src/Magnum/Test/AbstractOpenGLTester.h @@ -25,40 +25,20 @@ DEALINGS IN THE SOFTWARE. */ -#include +#include "Magnum/OpenGLTester.h" +#ifdef MAGNUM_BUILD_DEPRECATED +CORRADE_DEPRECATED_FILE("use Magnum/OpenGLTester.h and Magnum::OpenGLTester library instead") #include "Magnum/Context.h" #include "Magnum/Extensions.h" #include "Magnum/DebugOutput.h" -#include "Magnum/Renderer.h" - -#ifdef MAGNUM_TARGET_HEADLESS -#include "Magnum/Platform/WindowlessEglApplication.h" -#elif defined(CORRADE_TARGET_IOS) -#include "Magnum/Platform/WindowlessIosApplication.h" -#elif defined(CORRADE_TARGET_APPLE) -#include "Magnum/Platform/WindowlessCglApplication.h" -#elif defined(CORRADE_TARGET_UNIX) -#if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_DESKTOP_GLES) -#include "Magnum/Platform/WindowlessEglApplication.h" -#else -#include "Magnum/Platform/WindowlessGlxApplication.h" -#endif -#elif defined(CORRADE_TARGET_WINDOWS) -#if !defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_DESKTOP_GLES) -#include "Magnum/Platform/WindowlessWglApplication.h" -#else -#include "Magnum/Platform/WindowlessWindowsEglApplication.h" -#endif -#else -#error cannot run OpenGL tests on this platform -#endif namespace Magnum { namespace Test { class AbstractOpenGLTester: public TestSuite::Tester { public: - explicit AbstractOpenGLTester(); + /* Deprecating the class doesn't make GCC print the warnings :( */ + explicit CORRADE_DEPRECATED("use OpenGLTester instead") AbstractOpenGLTester(); private: struct WindowlessApplication: Platform::WindowlessApplication { @@ -91,9 +71,10 @@ AbstractOpenGLTester::AbstractOpenGLTester(): TestSuite::Tester{TestSuite::Teste } } -#define MAGNUM_VERIFY_NO_ERROR() CORRADE_COMPARE(Magnum::Renderer::error(), Magnum::Renderer::Error::NoError) - #define MAGNUM_GL_TEST_MAIN(Class) CORRADE_TEST_MAIN(Class) +#else +#error use Magnum/OpenGLTester.h and Magnum::OpenGLTester library instead +#endif }} diff --git a/src/Magnum/Test/AbstractQueryGLTest.cpp b/src/Magnum/Test/AbstractQueryGLTest.cpp index 03cfbc764..a7f849ee1 100644 --- a/src/Magnum/Test/AbstractQueryGLTest.cpp +++ b/src/Magnum/Test/AbstractQueryGLTest.cpp @@ -23,12 +23,14 @@ DEALINGS IN THE SOFTWARE. */ +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/SampleQuery.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct AbstractQueryGLTest: AbstractOpenGLTester { +struct AbstractQueryGLTest: OpenGLTester { explicit AbstractQueryGLTest(); void construct(); @@ -143,4 +145,4 @@ void AbstractQueryGLTest::label() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::AbstractQueryGLTest) +CORRADE_TEST_MAIN(Magnum::Test::AbstractQueryGLTest) diff --git a/src/Magnum/Test/AbstractShaderProgramGLTest.cpp b/src/Magnum/Test/AbstractShaderProgramGLTest.cpp index d8f29e80c..738ff9828 100644 --- a/src/Magnum/Test/AbstractShaderProgramGLTest.cpp +++ b/src/Magnum/Test/AbstractShaderProgramGLTest.cpp @@ -42,11 +42,11 @@ #include "Magnum/Math/Matrix.h" #include "Magnum/Math/Vector4.h" #include "Magnum/Math/Color.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct AbstractShaderProgramGLTest: AbstractOpenGLTester { +struct AbstractShaderProgramGLTest: OpenGLTester { explicit AbstractShaderProgramGLTest(); void construct(); @@ -725,4 +725,4 @@ void AbstractShaderProgramGLTest::compute() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::AbstractShaderProgramGLTest) +CORRADE_TEST_MAIN(Magnum::Test::AbstractShaderProgramGLTest) diff --git a/src/Magnum/Test/AbstractTextureGLTest.cpp b/src/Magnum/Test/AbstractTextureGLTest.cpp index 5b593b288..940ae6ef3 100644 --- a/src/Magnum/Test/AbstractTextureGLTest.cpp +++ b/src/Magnum/Test/AbstractTextureGLTest.cpp @@ -26,11 +26,11 @@ #include "Magnum/Context.h" #include "Magnum/Extensions.h" #include "Magnum/Texture.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct AbstractTextureGLTest: AbstractOpenGLTester { +struct AbstractTextureGLTest: OpenGLTester { explicit AbstractTextureGLTest(); void construct(); @@ -105,4 +105,4 @@ void AbstractTextureGLTest::label() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::AbstractTextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::AbstractTextureGLTest) diff --git a/src/Magnum/Test/BufferGLTest.cpp b/src/Magnum/Test/BufferGLTest.cpp index 55129e983..b89ce4a6c 100644 --- a/src/Magnum/Test/BufferGLTest.cpp +++ b/src/Magnum/Test/BufferGLTest.cpp @@ -31,11 +31,11 @@ #include "Magnum/Buffer.h" #include "Magnum/Context.h" #include "Magnum/Extensions.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct BufferGLTest: AbstractOpenGLTester { +struct BufferGLTest: OpenGLTester { explicit BufferGLTest(); void construct(); @@ -447,4 +447,4 @@ void BufferGLTest::invalidate() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::BufferGLTest) +CORRADE_TEST_MAIN(Magnum::Test::BufferGLTest) diff --git a/src/Magnum/Test/BufferImageGLTest.cpp b/src/Magnum/Test/BufferImageGLTest.cpp index e424552fc..8052ce834 100644 --- a/src/Magnum/Test/BufferImageGLTest.cpp +++ b/src/Magnum/Test/BufferImageGLTest.cpp @@ -27,11 +27,11 @@ #include "Magnum/BufferImage.h" #include "Magnum/PixelFormat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct BufferImageGLTest: AbstractOpenGLTester { +struct BufferImageGLTest: OpenGLTester { explicit BufferImageGLTest(); void construct(); @@ -263,4 +263,4 @@ void BufferImageGLTest::setDataCompressed() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::BufferImageGLTest) +CORRADE_TEST_MAIN(Magnum::Test::BufferImageGLTest) diff --git a/src/Magnum/Test/BufferTextureGLTest.cpp b/src/Magnum/Test/BufferTextureGLTest.cpp index fc2a7946b..b103d14a6 100644 --- a/src/Magnum/Test/BufferTextureGLTest.cpp +++ b/src/Magnum/Test/BufferTextureGLTest.cpp @@ -28,12 +28,14 @@ #include "Magnum/Buffer.h" #include "Magnum/BufferTexture.h" #include "Magnum/BufferTextureFormat.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/ImageFormat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct BufferTextureGLTest: AbstractOpenGLTester { +struct BufferTextureGLTest: OpenGLTester { explicit BufferTextureGLTest(); void construct(); @@ -228,4 +230,4 @@ void BufferTextureGLTest::setBufferOffset() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::BufferTextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::BufferTextureGLTest) diff --git a/src/Magnum/Test/CMakeLists.txt b/src/Magnum/Test/CMakeLists.txt index e042bdb67..f346807d7 100644 --- a/src/Magnum/Test/CMakeLists.txt +++ b/src/Magnum/Test/CMakeLists.txt @@ -53,43 +53,43 @@ endif() corrade_add_test(ResourceManagerLocalInstanceTest ResourceManagerLocalInstanceTest.cpp LIBRARIES Magnum ResourceManagerLocalInstanceTestLib) if(BUILD_GL_TESTS) - corrade_add_test(AbstractObjectGLTest AbstractObjectGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(AbstractQueryGLTest AbstractQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(AbstractTextureGLTest AbstractTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(BufferGLTest BufferGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(ContextGLTest ContextGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(CubeMapTextureGLTest CubeMapTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(DebugOutputGLTest DebugOutputGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(FramebufferGLTest FramebufferGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(MeshGLTest MeshGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(PixelStorageGLTest PixelStorageGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(RenderbufferGLTest RenderbufferGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(SampleQueryGLTest SampleQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(TextureGLTest TextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(TimeQueryGLTest TimeQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) + corrade_add_test(AbstractObjectGLTest AbstractObjectGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(AbstractQueryGLTest AbstractQueryGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(AbstractTextureGLTest AbstractTextureGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(BufferGLTest BufferGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(ContextGLTest ContextGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(CubeMapTextureGLTest CubeMapTextureGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(DebugOutputGLTest DebugOutputGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(FramebufferGLTest FramebufferGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(MeshGLTest MeshGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(PixelStorageGLTest PixelStorageGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(RenderbufferGLTest RenderbufferGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(SampleQueryGLTest SampleQueryGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(TextureGLTest TextureGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(TimeQueryGLTest TimeQueryGLTest.cpp LIBRARIES MagnumOpenGLTester) corrade_add_resource(AbstractShaderProgramGLTest_RES AbstractShaderProgramGLTestFiles/resources.conf) corrade_add_test(AbstractShaderProgramGLTest AbstractShaderProgramGLTest.cpp ${AbstractShaderProgramGLTest_RES} - LIBRARIES ${GL_TEST_LIBRARIES}) + LIBRARIES MagnumOpenGLTester) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) - corrade_add_test(ShaderGLTest ShaderGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) + corrade_add_test(ShaderGLTest ShaderGLTest.cpp LIBRARIES MagnumOpenGLTester) target_include_directories(ShaderGLTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) if(NOT MAGNUM_TARGET_GLES2) - corrade_add_test(BufferImageGLTest BufferImageGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(BufferTextureGLTest BufferTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(CubeMapTextureArrayGLTest CubeMapTextureArrayGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(MultisampleTextureGLTest MultisampleTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(PrimitiveQueryGLTest PrimitiveQueryGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(TextureArrayGLTest TextureArrayGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) - corrade_add_test(TransformFeedbackGLTest TransformFeedbackGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) + corrade_add_test(BufferImageGLTest BufferImageGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(BufferTextureGLTest BufferTextureGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(CubeMapTextureArrayGLTest CubeMapTextureArrayGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(MultisampleTextureGLTest MultisampleTextureGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(PrimitiveQueryGLTest PrimitiveQueryGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(TextureArrayGLTest TextureArrayGLTest.cpp LIBRARIES MagnumOpenGLTester) + corrade_add_test(TransformFeedbackGLTest TransformFeedbackGLTest.cpp LIBRARIES MagnumOpenGLTester) endif() if(NOT MAGNUM_TARGET_GLES) - corrade_add_test(RectangleTextureGLTest RectangleTextureGLTest.cpp LIBRARIES ${GL_TEST_LIBRARIES}) + corrade_add_test(RectangleTextureGLTest RectangleTextureGLTest.cpp LIBRARIES MagnumOpenGLTester) endif() endif() diff --git a/src/Magnum/Test/ContextGLTest.cpp b/src/Magnum/Test/ContextGLTest.cpp index 7f0986a0f..af6786125 100644 --- a/src/Magnum/Test/ContextGLTest.cpp +++ b/src/Magnum/Test/ContextGLTest.cpp @@ -27,11 +27,11 @@ #include "Magnum/Context.h" #include "Magnum/Extensions.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct ContextGLTest: AbstractOpenGLTester { +struct ContextGLTest: OpenGLTester { explicit ContextGLTest(); void constructCopyMove(); @@ -141,4 +141,4 @@ void ContextGLTest::isExtensionDisabled() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::ContextGLTest) +CORRADE_TEST_MAIN(Magnum::Test::ContextGLTest) diff --git a/src/Magnum/Test/CubeMapTextureArrayGLTest.cpp b/src/Magnum/Test/CubeMapTextureArrayGLTest.cpp index b7d44ea01..e186d3ead 100644 --- a/src/Magnum/Test/CubeMapTextureArrayGLTest.cpp +++ b/src/Magnum/Test/CubeMapTextureArrayGLTest.cpp @@ -27,17 +27,19 @@ #include "Magnum/BufferImage.h" #include "Magnum/CubeMapTextureArray.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Image.h" #include "Magnum/ImageFormat.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct CubeMapTextureArrayGLTest: AbstractOpenGLTester { +struct CubeMapTextureArrayGLTest: OpenGLTester { explicit CubeMapTextureArrayGLTest(); void construct(); @@ -1046,4 +1048,4 @@ void CubeMapTextureArrayGLTest::invalidateSubImage() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::CubeMapTextureArrayGLTest) +CORRADE_TEST_MAIN(Magnum::Test::CubeMapTextureArrayGLTest) diff --git a/src/Magnum/Test/CubeMapTextureGLTest.cpp b/src/Magnum/Test/CubeMapTextureGLTest.cpp index 80bfe2911..13ffb2b5d 100644 --- a/src/Magnum/Test/CubeMapTextureGLTest.cpp +++ b/src/Magnum/Test/CubeMapTextureGLTest.cpp @@ -25,7 +25,8 @@ #include -#include "Magnum/configure.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #ifndef MAGNUM_TARGET_GLES2 #include "Magnum/BufferImage.h" #endif @@ -34,15 +35,15 @@ #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #include "Magnum/ImageFormat.h" #endif +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct CubeMapTextureGLTest: AbstractOpenGLTester { +struct CubeMapTextureGLTest: OpenGLTester { explicit CubeMapTextureGLTest(); void construct(); @@ -1193,4 +1194,4 @@ void CubeMapTextureGLTest::invalidateSubImage() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::CubeMapTextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::CubeMapTextureGLTest) diff --git a/src/Magnum/Test/DebugOutputGLTest.cpp b/src/Magnum/Test/DebugOutputGLTest.cpp index 9af68e779..96171b617 100644 --- a/src/Magnum/Test/DebugOutputGLTest.cpp +++ b/src/Magnum/Test/DebugOutputGLTest.cpp @@ -28,11 +28,11 @@ #include "Magnum/Context.h" #include "Magnum/DebugOutput.h" #include "Magnum/Extensions.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct DebugOutputGLTest: AbstractOpenGLTester { +struct DebugOutputGLTest: OpenGLTester { explicit DebugOutputGLTest(); void setCallback(); @@ -175,4 +175,4 @@ void DebugOutputGLTest::groupFallback() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::DebugOutputGLTest) +CORRADE_TEST_MAIN(Magnum::Test::DebugOutputGLTest) diff --git a/src/Magnum/Test/FramebufferGLTest.cpp b/src/Magnum/Test/FramebufferGLTest.cpp index 230875c8d..e2e982b8b 100644 --- a/src/Magnum/Test/FramebufferGLTest.cpp +++ b/src/Magnum/Test/FramebufferGLTest.cpp @@ -36,7 +36,7 @@ #include "Magnum/Texture.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" #ifndef MAGNUM_TARGET_GLES2 #include "Magnum/BufferImage.h" @@ -52,7 +52,7 @@ namespace Magnum { namespace Test { -struct FramebufferGLTest: AbstractOpenGLTester { +struct FramebufferGLTest: OpenGLTester { explicit FramebufferGLTest(); void construct(); @@ -1763,4 +1763,4 @@ void FramebufferGLTest::blit() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::FramebufferGLTest) +CORRADE_TEST_MAIN(Magnum::Test::FramebufferGLTest) diff --git a/src/Magnum/Test/MeshGLTest.cpp b/src/Magnum/Test/MeshGLTest.cpp index 7504a6204..18ac1dea7 100644 --- a/src/Magnum/Test/MeshGLTest.cpp +++ b/src/Magnum/Test/MeshGLTest.cpp @@ -25,10 +25,13 @@ #include "Magnum/AbstractShaderProgram.h" #include "Magnum/Buffer.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Framebuffer.h" #include "Magnum/Image.h" #include "Magnum/Mesh.h" #include "Magnum/MeshView.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/Renderbuffer.h" #include "Magnum/RenderbufferFormat.h" @@ -36,13 +39,12 @@ #include "Magnum/Math/Color.h" #include "Magnum/Math/Matrix.h" #include "Magnum/Math/Vector4.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { /* Tests also MeshView class. */ -struct MeshGLTest: AbstractOpenGLTester { +struct MeshGLTest: OpenGLTester { explicit MeshGLTest(); void construct(); @@ -1956,4 +1958,4 @@ void MeshGLTest::multiDrawBaseVertex() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::MeshGLTest) +CORRADE_TEST_MAIN(Magnum::Test::MeshGLTest) diff --git a/src/Magnum/Test/MultisampleTextureGLTest.cpp b/src/Magnum/Test/MultisampleTextureGLTest.cpp index 979d9bb61..eab804e64 100644 --- a/src/Magnum/Test/MultisampleTextureGLTest.cpp +++ b/src/Magnum/Test/MultisampleTextureGLTest.cpp @@ -25,15 +25,17 @@ #include -#include "Magnum/MultisampleTexture.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/ImageFormat.h" +#include "Magnum/MultisampleTexture.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Vector3.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct MultisampleTextureGLTest: AbstractOpenGLTester { +struct MultisampleTextureGLTest: OpenGLTester { explicit MultisampleTextureGLTest(); void construct2D(); @@ -422,4 +424,4 @@ void MultisampleTextureGLTest::invalidateSubImage2DArray() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::MultisampleTextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::MultisampleTextureGLTest) diff --git a/src/Magnum/Test/PixelStorageGLTest.cpp b/src/Magnum/Test/PixelStorageGLTest.cpp index abbb6e699..4596a15d3 100644 --- a/src/Magnum/Test/PixelStorageGLTest.cpp +++ b/src/Magnum/Test/PixelStorageGLTest.cpp @@ -25,14 +25,16 @@ #include +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Image.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/Texture.h" #ifndef MAGNUM_TARGET_GLES2 #include "Magnum/TextureArray.h" #endif #include "Magnum/TextureFormat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" #ifdef MAGNUM_TARGET_GLES #include "Magnum/Framebuffer.h" @@ -40,7 +42,7 @@ namespace Magnum { namespace Test { -struct PixelStorageGLTest: AbstractOpenGLTester { +struct PixelStorageGLTest: OpenGLTester { explicit PixelStorageGLTest(); void unpack2D(); @@ -455,4 +457,4 @@ void PixelStorageGLTest::packCompressed3D() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::PixelStorageGLTest) +CORRADE_TEST_MAIN(Magnum::Test::PixelStorageGLTest) diff --git a/src/Magnum/Test/PrimitiveQueryGLTest.cpp b/src/Magnum/Test/PrimitiveQueryGLTest.cpp index ae2881894..044ea0c2b 100644 --- a/src/Magnum/Test/PrimitiveQueryGLTest.cpp +++ b/src/Magnum/Test/PrimitiveQueryGLTest.cpp @@ -28,19 +28,21 @@ #include "Magnum/AbstractShaderProgram.h" #include "Magnum/Buffer.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Framebuffer.h" #include "Magnum/Mesh.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PrimitiveQuery.h" #include "Magnum/Renderbuffer.h" #include "Magnum/RenderbufferFormat.h" #include "Magnum/Shader.h" #include "Magnum/TransformFeedback.h" #include "Magnum/Math/Vector2.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct PrimitiveQueryGLTest: AbstractOpenGLTester { +struct PrimitiveQueryGLTest: OpenGLTester { explicit PrimitiveQueryGLTest(); void constructNoCreate(); @@ -395,4 +397,4 @@ void PrimitiveQueryGLTest::transformFeedbackOverflow() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::PrimitiveQueryGLTest) +CORRADE_TEST_MAIN(Magnum::Test::PrimitiveQueryGLTest) diff --git a/src/Magnum/Test/RectangleTextureGLTest.cpp b/src/Magnum/Test/RectangleTextureGLTest.cpp index 8e0d4cfc9..ab145e186 100644 --- a/src/Magnum/Test/RectangleTextureGLTest.cpp +++ b/src/Magnum/Test/RectangleTextureGLTest.cpp @@ -26,20 +26,22 @@ #include #include -#include "Magnum/configure.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/BufferImage.h" #include "Magnum/Image.h" #include "Magnum/ImageFormat.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/RectangleTexture.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct RectangleTextureGLTest: AbstractOpenGLTester { +struct RectangleTextureGLTest: OpenGLTester { explicit RectangleTextureGLTest(); void construct(); @@ -485,4 +487,4 @@ void RectangleTextureGLTest::invalidateSubImage() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::RectangleTextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::RectangleTextureGLTest) diff --git a/src/Magnum/Test/RenderbufferGLTest.cpp b/src/Magnum/Test/RenderbufferGLTest.cpp index ad6fd4afd..0204371ab 100644 --- a/src/Magnum/Test/RenderbufferGLTest.cpp +++ b/src/Magnum/Test/RenderbufferGLTest.cpp @@ -28,11 +28,11 @@ #include "Magnum/Extensions.h" #include "Magnum/Renderbuffer.h" #include "Magnum/RenderbufferFormat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" namespace Magnum { namespace Test { -struct RenderbufferGLTest: AbstractOpenGLTester { +struct RenderbufferGLTest: OpenGLTester { explicit RenderbufferGLTest(); void construct(); @@ -199,4 +199,4 @@ void RenderbufferGLTest::setStorageMultisample() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::RenderbufferGLTest) +CORRADE_TEST_MAIN(Magnum::Test::RenderbufferGLTest) diff --git a/src/Magnum/Test/SampleQueryGLTest.cpp b/src/Magnum/Test/SampleQueryGLTest.cpp index 37bfcab2b..eb6ef5c08 100644 --- a/src/Magnum/Test/SampleQueryGLTest.cpp +++ b/src/Magnum/Test/SampleQueryGLTest.cpp @@ -28,17 +28,19 @@ #include "Magnum/AbstractShaderProgram.h" #include "Magnum/Buffer.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Framebuffer.h" #include "Magnum/Mesh.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Renderbuffer.h" #include "Magnum/RenderbufferFormat.h" #include "Magnum/SampleQuery.h" #include "Magnum/Shader.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct SampleQueryGLTest: AbstractOpenGLTester { +struct SampleQueryGLTest: OpenGLTester { explicit SampleQueryGLTest(); void constructNoCreate(); @@ -278,4 +280,4 @@ void SampleQueryGLTest::conditionalRender() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::SampleQueryGLTest) +CORRADE_TEST_MAIN(Magnum::Test::SampleQueryGLTest) diff --git a/src/Magnum/Test/ShaderGLTest.cpp b/src/Magnum/Test/ShaderGLTest.cpp index 519bf35a1..0c2c3dc0e 100644 --- a/src/Magnum/Test/ShaderGLTest.cpp +++ b/src/Magnum/Test/ShaderGLTest.cpp @@ -28,13 +28,13 @@ #include "Magnum/Context.h" #include "Magnum/Extensions.h" #include "Magnum/Shader.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" #include "configure.h" namespace Magnum { namespace Test { -struct ShaderGLTest: AbstractOpenGLTester { +struct ShaderGLTest: OpenGLTester { explicit ShaderGLTest(); void construct(); @@ -277,4 +277,4 @@ void ShaderGLTest::compileNoVersion() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::ShaderGLTest) +CORRADE_TEST_MAIN(Magnum::Test::ShaderGLTest) diff --git a/src/Magnum/Test/TextureArrayGLTest.cpp b/src/Magnum/Test/TextureArrayGLTest.cpp index 131d03d36..5c5fe3e83 100644 --- a/src/Magnum/Test/TextureArrayGLTest.cpp +++ b/src/Magnum/Test/TextureArrayGLTest.cpp @@ -25,20 +25,21 @@ #include -#include "Magnum/configure.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/BufferImage.h" #include "Magnum/Image.h" #include "Magnum/ImageFormat.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/TextureArray.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct TextureArrayGLTest: AbstractOpenGLTester { +struct TextureArrayGLTest: OpenGLTester { explicit TextureArrayGLTest(); #ifndef MAGNUM_TARGET_GLES @@ -1553,4 +1554,4 @@ void TextureArrayGLTest::invalidateSubImage2D() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::TextureArrayGLTest) +CORRADE_TEST_MAIN(Magnum::Test::TextureArrayGLTest) diff --git a/src/Magnum/Test/TextureGLTest.cpp b/src/Magnum/Test/TextureGLTest.cpp index de6c3b3a5..cba817575 100644 --- a/src/Magnum/Test/TextureGLTest.cpp +++ b/src/Magnum/Test/TextureGLTest.cpp @@ -25,7 +25,8 @@ #include -#include "Magnum/configure.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #ifndef MAGNUM_TARGET_GLES2 #include "Magnum/BufferImage.h" #endif @@ -33,16 +34,16 @@ #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #include "Magnum/ImageFormat.h" #endif +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/Texture.h" #include "Magnum/TextureFormat.h" #include "Magnum/Math/Color.h" #include "Magnum/Math/Range.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct TextureGLTest: AbstractOpenGLTester { +struct TextureGLTest: OpenGLTester { explicit TextureGLTest(); #ifndef MAGNUM_TARGET_GLES @@ -2184,4 +2185,4 @@ void TextureGLTest::invalidateSubImage3D() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::TextureGLTest) +CORRADE_TEST_MAIN(Magnum::Test::TextureGLTest) diff --git a/src/Magnum/Test/TimeQueryGLTest.cpp b/src/Magnum/Test/TimeQueryGLTest.cpp index 292c50acc..2bc1f1cc0 100644 --- a/src/Magnum/Test/TimeQueryGLTest.cpp +++ b/src/Magnum/Test/TimeQueryGLTest.cpp @@ -25,12 +25,14 @@ #include +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/TimeQuery.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct TimeQueryGLTest: AbstractOpenGLTester { +struct TimeQueryGLTest: OpenGLTester { explicit TimeQueryGLTest(); void constructNoCreate(); @@ -147,4 +149,4 @@ void TimeQueryGLTest::queryTimestamp() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::TimeQueryGLTest) +CORRADE_TEST_MAIN(Magnum::Test::TimeQueryGLTest) diff --git a/src/Magnum/Test/TransformFeedbackGLTest.cpp b/src/Magnum/Test/TransformFeedbackGLTest.cpp index f122c4c57..1c8bdeb53 100644 --- a/src/Magnum/Test/TransformFeedbackGLTest.cpp +++ b/src/Magnum/Test/TransformFeedbackGLTest.cpp @@ -25,9 +25,12 @@ #include "Magnum/AbstractShaderProgram.h" #include "Magnum/Buffer.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" #include "Magnum/Framebuffer.h" #include "Magnum/Image.h" #include "Magnum/Mesh.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/PixelFormat.h" #include "Magnum/PrimitiveQuery.h" #include "Magnum/SampleQuery.h" @@ -36,11 +39,10 @@ #include "Magnum/Shader.h" #include "Magnum/TransformFeedback.h" #include "Magnum/Math/Vector2.h" -#include "Magnum/Test/AbstractOpenGLTester.h" namespace Magnum { namespace Test { -struct TransformFeedbackGLTest: AbstractOpenGLTester { +struct TransformFeedbackGLTest: OpenGLTester { explicit TransformFeedbackGLTest(); void construct(); @@ -698,4 +700,4 @@ void TransformFeedbackGLTest::draw() { }} -MAGNUM_GL_TEST_MAIN(Magnum::Test::TransformFeedbackGLTest) +CORRADE_TEST_MAIN(Magnum::Test::TransformFeedbackGLTest) diff --git a/src/Magnum/Text/Test/CMakeLists.txt b/src/Magnum/Text/Test/CMakeLists.txt index 2693e77ed..43223131c 100644 --- a/src/Magnum/Text/Test/CMakeLists.txt +++ b/src/Magnum/Text/Test/CMakeLists.txt @@ -45,6 +45,6 @@ target_include_directories(TextAbstractFontConverterTest PRIVATE ${CMAKE_CURRENT corrade_add_test(TextAbstractLayouterTest AbstractLayouterTest.cpp LIBRARIES Magnum MagnumText) if(BUILD_GL_TESTS) - corrade_add_test(TextGlyphCacheGLTest GlyphCacheGLTest.cpp LIBRARIES MagnumText ${GL_TEST_LIBRARIES}) - corrade_add_test(TextRendererGLTest RendererGLTest.cpp LIBRARIES MagnumText ${GL_TEST_LIBRARIES}) + corrade_add_test(TextGlyphCacheGLTest GlyphCacheGLTest.cpp LIBRARIES MagnumText MagnumOpenGLTester) + corrade_add_test(TextRendererGLTest RendererGLTest.cpp LIBRARIES MagnumText MagnumOpenGLTester) endif() diff --git a/src/Magnum/Text/Test/GlyphCacheGLTest.cpp b/src/Magnum/Text/Test/GlyphCacheGLTest.cpp index 682d1f20c..c98b95f76 100644 --- a/src/Magnum/Text/Test/GlyphCacheGLTest.cpp +++ b/src/Magnum/Text/Test/GlyphCacheGLTest.cpp @@ -25,12 +25,12 @@ #include -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Text/GlyphCache.h" namespace Magnum { namespace Text { namespace Test { -struct GlyphCacheGLTest: Magnum::Test::AbstractOpenGLTester { +struct GlyphCacheGLTest: OpenGLTester { explicit GlyphCacheGLTest(); void initialize(); @@ -93,4 +93,4 @@ void GlyphCacheGLTest::reserve() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Text::Test::GlyphCacheGLTest) +CORRADE_TEST_MAIN(Magnum::Text::Test::GlyphCacheGLTest) diff --git a/src/Magnum/Text/Test/RendererGLTest.cpp b/src/Magnum/Text/Test/RendererGLTest.cpp index 51afbc7e7..a4c2d205b 100644 --- a/src/Magnum/Text/Test/RendererGLTest.cpp +++ b/src/Magnum/Text/Test/RendererGLTest.cpp @@ -23,13 +23,15 @@ DEALINGS IN THE SOFTWARE. */ -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/Context.h" +#include "Magnum/Extensions.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Text/AbstractFont.h" #include "Magnum/Text/Renderer.h" namespace Magnum { namespace Text { namespace Test { -struct RendererGLTest: Magnum::Test::AbstractOpenGLTester { +struct RendererGLTest: OpenGLTester { explicit RendererGLTest(); void renderData(); @@ -432,4 +434,4 @@ void RendererGLTest::multiline() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Text::Test::RendererGLTest) +CORRADE_TEST_MAIN(Magnum::Text::Test::RendererGLTest) diff --git a/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt b/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt index 3b0a411d9..895001988 100644 --- a/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt @@ -26,5 +26,5 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(MagnumFontGLTest MagnumFontGLTest.cpp LIBRARIES MagnumMagnumFontTestLib ${GL_TEST_LIBRARIES}) +corrade_add_test(MagnumFontGLTest MagnumFontGLTest.cpp LIBRARIES MagnumMagnumFontTestLib MagnumOpenGLTester) target_include_directories(MagnumFontGLTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/MagnumPlugins/MagnumFont/Test/MagnumFontGLTest.cpp b/src/MagnumPlugins/MagnumFont/Test/MagnumFontGLTest.cpp index 36226d297..b15e82a8b 100644 --- a/src/MagnumPlugins/MagnumFont/Test/MagnumFontGLTest.cpp +++ b/src/MagnumPlugins/MagnumFont/Test/MagnumFontGLTest.cpp @@ -25,7 +25,7 @@ #include -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Text/GlyphCache.h" #include "MagnumPlugins/MagnumFont/MagnumFont.h" @@ -33,7 +33,7 @@ namespace Magnum { namespace Text { namespace Test { -class MagnumFontGLTest: public Magnum::Test::AbstractOpenGLTester { +class MagnumFontGLTest: public OpenGLTester { public: explicit MagnumFontGLTest(); @@ -117,4 +117,4 @@ void MagnumFontGLTest::createGlyphCache() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Text::Test::MagnumFontGLTest) +CORRADE_TEST_MAIN(Magnum::Text::Test::MagnumFontGLTest) diff --git a/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt b/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt index fa42cba7a..96ad9a004 100644 --- a/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt @@ -29,7 +29,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake corrade_add_test(MagnumFontConverterGLTest MagnumFontConverterGLTest.cpp LIBRARIES MagnumMagnumFontConverterTestLib MagnumTgaImporterTestLib - ${GL_TEST_LIBRARIES}) + MagnumOpenGLTester) target_include_directories(MagnumFontConverterGLTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting TgaImporter symbols, because it would # search for the symbols in some DLL even though they were linked statically. diff --git a/src/MagnumPlugins/MagnumFontConverter/Test/MagnumFontConverterGLTest.cpp b/src/MagnumPlugins/MagnumFontConverter/Test/MagnumFontConverterGLTest.cpp index c2fbcfad6..faa259929 100644 --- a/src/MagnumPlugins/MagnumFontConverter/Test/MagnumFontConverterGLTest.cpp +++ b/src/MagnumPlugins/MagnumFontConverter/Test/MagnumFontConverterGLTest.cpp @@ -26,10 +26,11 @@ #include #include +#include "Magnum/Context.h" #include "Magnum/Extensions.h" #include "Magnum/PixelFormat.h" #include "Magnum/TextureFormat.h" -#include "Magnum/Test/AbstractOpenGLTester.h" +#include "Magnum/OpenGLTester.h" #include "Magnum/Text/GlyphCache.h" #include "Magnum/Text/AbstractFont.h" #include "Magnum/Trade/ImageData.h" @@ -41,7 +42,7 @@ namespace Magnum { namespace Text { namespace Test { -class MagnumFontConverterGLTest: public Magnum::Test::AbstractOpenGLTester { +class MagnumFontConverterGLTest: public OpenGLTester { public: explicit MagnumFontConverterGLTest(); @@ -123,4 +124,4 @@ void MagnumFontConverterGLTest::exportFont() { }}} -MAGNUM_GL_TEST_MAIN(Magnum::Text::Test::MagnumFontConverterGLTest) +CORRADE_TEST_MAIN(Magnum::Text::Test::MagnumFontConverterGLTest)