diff options
Diffstat (limited to 'tests/GLInterfaceValidationTest.cpp')
-rwxr-xr-x | tests/GLInterfaceValidationTest.cpp | 39 |
1 files changed, 22 insertions, 17 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 |