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"
12 class ScopedGpuRasterTest
: public testing::Test
{
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
);