diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/GLInterfaceValidationTest.cpp | 39 | ||||
-rw-r--r-- | tests/GrContextFactoryTest.cpp | 18 |
2 files changed, 39 insertions, 18 deletions
diff --git a/tests/GLInterfaceValidationTest.cpp b/tests/GLInterfaceValidationTest.cpp index 5736e2d2d6..b890b44e5f 100755 --- a/tests/GLInterfaceValidationTest.cpp +++ b/tests/GLInterfaceValidationTest.cpp @@ -12,28 +12,33 @@ #include "GrContextFactory.h" -DEF_GPUTEST(GLInterfaceValidation, reporter, factory) { - for (int i = 0; i <= GrContextFactory::kLastGLContextType; ++i) { - GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType)i; - // this forces the factory to make the context if it hasn't yet - GrContextFactory::ContextInfo* contextInfo = factory->getContextInfo(glCtxType); - SkGLContext* glCtx = contextInfo ? contextInfo->fGLContext : nullptr; - - // We're supposed to fail the NVPR context type when we the native context that does not - // support the NVPR extension. - if (GrContextFactory::kNVPR_GLContextType == glCtxType && - factory->getContextInfo(GrContextFactory::kNative_GLContextType) && - !factory->getContextInfo(GrContextFactory::kNative_GLContextType)->fGLContext->gl()->hasExtension("GL_NV_path_rendering")) { - REPORTER_ASSERT(reporter, nullptr == glCtx); +DEF_GPUTEST(GLInterfaceValidation, reporter, /*factory*/) { + GrContextFactory testFactory; + + // Test that if we do not have NV_path_rendering -related GL extensions, + // GrContextFactory::get(.., kEnableNVPR_GLContextOptions) always returns nullptr. + for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) { + GrContextFactory::GLContextType glCtxType = static_cast<GrContextFactory::GLContextType>(i); + GrContextFactory::ContextInfo* context = + testFactory.getContextInfo(glCtxType, kNone_GrGLStandard, + GrContextFactory::kNone_GLContextOptions); + if (!context) { continue; } - REPORTER_ASSERT(reporter, glCtx); - if (glCtx) { - const GrGLInterface* interface = glCtx->gl(); - REPORTER_ASSERT(reporter, interface->validate()); + SkGLContext* glContext = context->fGLContext; + REPORTER_ASSERT(reporter, glContext->gl()->validate()); + + if (!(glContext->gl()->hasExtension("GL_NV_path_rendering") || + glContext->gl()->hasExtension("GL_CHROMIUM_path_rendering"))) { + REPORTER_ASSERT(reporter, + nullptr == testFactory.getContextInfo( + glCtxType, + kNone_GrGLStandard, + GrContextFactory::kEnableNVPR_GLContextOptions)); } } + } #endif diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp index 79209c719f..ad83a344d8 100644 --- a/tests/GrContextFactoryTest.cpp +++ b/tests/GrContextFactoryTest.cpp @@ -10,8 +10,24 @@ #if SK_SUPPORT_GPU #include "GrContextFactory.h" +#include "GrCaps.h" #include "Test.h" -// TODO: test GrContextFactory. +DEF_GPUTEST(GrContextFactoryNVPRContextOptions, reporter, /*factory*/) { + GrContextFactory testFactory; + // Test that if NVPR is possible, caps are in sync. + for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) { + GrContextFactory::GLContextType glCtxType = static_cast<GrContextFactory::GLContextType>(i); + GrContext* context = testFactory.get(glCtxType, + kNone_GrGLStandard, + GrContextFactory::kEnableNVPR_GLContextOptions); + if (!context) { + continue; + } + REPORTER_ASSERT( + reporter, + context->caps()->shaderCaps()->pathRenderingSupport()); + } +} #endif |