From 35da9ebfa01275c6eb3fbaca8628efe52e0728f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 13 Apr 2016 17:48:56 +0200 Subject: [PATCH] Support iOS in GL tests. --- CMakeLists.txt | 3 +++ src/Magnum/Test/AbstractOpenGLTester.h | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5777e8f3c..58abee0bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -207,6 +207,9 @@ if(BUILD_GL_TESTS) if(MAGNUM_TARGET_HEADLESS) set(WITH_WINDOWLESSEGLAPPLICATION ON) set(GL_TEST_LIBRARIES Magnum MagnumWindowlessEglApplication) + elseif(CORRADE_TARGET_IOS) + set(WITH_WINDOWLESSIOSAPPLICATION ON) + set(GL_TEST_LIBRARIES Magnum MagnumWindowlessIosApplication) elseif(CORRADE_TARGET_APPLE) set(WITH_WINDOWLESSCGLAPPLICATION ON) set(GL_TEST_LIBRARIES Magnum MagnumWindowlessCglApplication) diff --git a/src/Magnum/Test/AbstractOpenGLTester.h b/src/Magnum/Test/AbstractOpenGLTester.h index ab212290b..9e2450d57 100644 --- a/src/Magnum/Test/AbstractOpenGLTester.h +++ b/src/Magnum/Test/AbstractOpenGLTester.h @@ -34,6 +34,8 @@ #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) && (!defined(MAGNUM_TARGET_GLES) || defined(MAGNUM_TARGET_DESKTOP_GLES)) @@ -70,7 +72,7 @@ class AbstractOpenGLTester: public TestSuite::Tester { AbstractOpenGLTester::AbstractOpenGLTester(): TestSuite::Tester{TestSuite::Tester::TesterConfiguration{}.setSkippedArgumentPrefixes({"magnum"})}, _windowlessApplication{*_windowlessApplicationArguments} { /* Try to create debug context, fallback to normal one if not possible. No - such thing on OSX. */ + such thing on OSX or iOS. */ #ifndef CORRADE_TARGET_APPLE if(!_windowlessApplication.tryCreateContext(Platform::WindowlessApplication::Configuration{}.setFlags(Platform::WindowlessApplication::Configuration::Flag::Debug))) _windowlessApplication.createContext(); @@ -116,6 +118,14 @@ std::optional AbstractOpenGLTester:: Magnum::Test::AbstractOpenGLTester::_windowlessApplicationArguments.emplace(argc, argv, nullptr); \ return Magnum::Platform::WindowlessApplication::create(windowProcedure); \ } +#elif defined(CORRADE_TESTSUITE_TARGET_XCTEST) +#define MAGNUM_GL_TEST_MAIN(Class) \ + int CORRADE_VISIBILITY_EXPORT corradeTestMain(int argc, char** argv) { \ + Magnum::Test::AbstractOpenGLTester::_windowlessApplicationArguments.emplace(argc, argv); \ + Class t; \ + t.registerTest(__FILE__, #Class); \ + return t.exec(argc, argv); \ + } #else #define MAGNUM_GL_TEST_MAIN(Class) \ int main(int argc, char** argv) { \