GPU workaround to simulate Out of Memory errors with large textures
[chromium-blink-merge.git] / cc / resources / scoped_gpu_raster_unittest.cc
blobb1f60a3c29b0ccb07e17fa80a9ac1bb5f31524d5
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/resources/scoped_gpu_raster.h"
6 #include "cc/test/test_context_provider.h"
7 #include "testing/gtest/include/gtest/gtest.h"
9 namespace cc {
10 namespace {
12 class ScopedGpuRasterTest : public testing::Test {
13 public:
14 ScopedGpuRasterTest() {}
17 // Releasing ScopedGpuRaster should restore GL_UNPACK_ALIGNMENT == 4.
18 TEST(ScopedGpuRasterTest, RestoresUnpackAlignment) {
19 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create();
20 EXPECT_TRUE(provider->BindToCurrentThread());
21 gpu::gles2::GLES2Interface* gl = provider->ContextGL();
22 GLint unpack_alignment = 0;
23 gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
24 EXPECT_EQ(4, unpack_alignment);
27 scoped_ptr<ScopedGpuRaster> scoped_gpu_raster(
28 new ScopedGpuRaster(provider.get()));
29 gl->PixelStorei(GL_UNPACK_ALIGNMENT, 1);
30 gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
31 EXPECT_EQ(1, unpack_alignment);
34 gl->GetIntegerv(GL_UNPACK_ALIGNMENT, &unpack_alignment);
35 EXPECT_EQ(4, unpack_alignment);
38 } // namespace
39 } // namespace cc