| Index: gpu/command_buffer/tests/gl_lose_context_chromium_unittests.cc
|
| diff --git a/gpu/command_buffer/tests/gl_lose_context_chromium_unittests.cc b/gpu/command_buffer/tests/gl_lose_context_chromium_unittests.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..385cc88bef7bf99a7b33046e5ceae696f9c729c4
|
| --- /dev/null
|
| +++ b/gpu/command_buffer/tests/gl_lose_context_chromium_unittests.cc
|
| @@ -0,0 +1,63 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include <GLES2/gl2.h>
|
| +#include <GLES2/gl2ext.h>
|
| +
|
| +#include "base/logging.h"
|
| +#include "gpu/command_buffer/tests/gl_manager.h"
|
| +#include "gpu/command_buffer/tests/gl_test_utils.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace gpu {
|
| +
|
| +class GLLoseContextTest : public testing::Test {
|
| + protected:
|
| + virtual void SetUp() {
|
| + GLManager::Options options;
|
| + gl2_.Initialize(options);
|
| + options.context_lost_allowed = true;
|
| + gl1a_.Initialize(options);
|
| + options.share_group_manager = &gl1a_;
|
| + gl1b_.Initialize(options);
|
| + }
|
| +
|
| + virtual void TearDown() {
|
| + gl1a_.Destroy();
|
| + gl1b_.Destroy();
|
| + gl2_.Destroy();
|
| + }
|
| +
|
| + GLManager gl1a_;
|
| + GLManager gl1b_;
|
| + GLManager gl2_;
|
| +};
|
| +
|
| +// Test that glLoseContextCHROMIUM loses context in the same
|
| +// share group but not other.
|
| +TEST_F(GLLoseContextTest, ShareGroup) {
|
| + gl1a_.MakeCurrent();
|
| + glLoseContextCHROMIUM(
|
| + GL_GUILTY_CONTEXT_RESET_EXT, GL_INNOCENT_CONTEXT_RESET_EXT);
|
| +
|
| + uint8 expected_no_draw[] = {
|
| + GLTestHelper::kCheckClearValue,
|
| + GLTestHelper::kCheckClearValue,
|
| + GLTestHelper::kCheckClearValue,
|
| + GLTestHelper::kCheckClearValue,
|
| + };
|
| + // Expect the read will fail.
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, 1, 1, 0, expected_no_draw));
|
| + gl1b_.MakeCurrent();
|
| + // Expect the read will fail.
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, 1, 1, 0, expected_no_draw));
|
| + gl2_.MakeCurrent();
|
| + uint8 expected_draw[] = { 0, 0, 0, 0, };
|
| + // Expect the read will succeed.
|
| + EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, 1, 1, 0, expected_draw));
|
| +}
|
| +
|
| +} // namespace gpu
|
| +
|
|
|