diff options
Diffstat (limited to 'tests/GrContextAbandonTest.cpp')
-rw-r--r-- | tests/GrContextAbandonTest.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/GrContextAbandonTest.cpp b/tests/GrContextAbandonTest.cpp new file mode 100644 index 0000000000..c62973f4da --- /dev/null +++ b/tests/GrContextAbandonTest.cpp @@ -0,0 +1,53 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkTypes.h" + +#if SK_SUPPORT_GPU + +#include "GrContextFactory.h" +#include "Test.h" + +using sk_gpu_test::GrContextFactory; + +DEF_GPUTEST(GrContext_abandonContext, reporter, /*factory*/) { + for (int testType = 0; testType < 6; ++testType) { + for (int i = 0; i < GrContextFactory::kGLContextTypeCnt; ++i) { + GrContextFactory testFactory; + GrContextFactory::GLContextType ctxType = (GrContextFactory::GLContextType) i; + GrContextFactory::ContextInfo info = testFactory.getContextInfo(ctxType); + if (GrContext* context = info.fGrContext) { + switch (testType) { + case 0: + context->abandonContext(); + break; + case 1: + context->releaseResourcesAndAbandonContext(); + break; + case 2: + context->abandonContext(); + context->abandonContext(); + break; + case 3: + context->abandonContext(); + context->releaseResourcesAndAbandonContext(); + break; + case 4: + context->releaseResourcesAndAbandonContext(); + context->abandonContext(); + break; + case 5: + context->releaseResourcesAndAbandonContext(); + context->releaseResourcesAndAbandonContext(); + break; + } + } + } + } +} + +#endif |