| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 // Tests for GLES2Implementation. | 5 // Tests for GLES2Implementation. | 
| 6 | 6 | 
| 7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" | 
| 8 | 8 | 
| 9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> | 
| 10 #include <GLES2/gl2ext.h> | 10 #include <GLES2/gl2ext.h> | 
| 11 #include <GLES2/gl2extchromium.h> | 11 #include <GLES2/gl2extchromium.h> | 
| 12 #include <GLES3/gl3.h> | 12 #include <GLES3/gl3.h> | 
| 13 | 13 | 
| 14 #include <stddef.h> | 14 #include <stddef.h> | 
| 15 #include <stdint.h> | 15 #include <stdint.h> | 
| 16 | 16 | 
| 17 #include <memory> | 17 #include <memory> | 
| 18 | 18 | 
|  | 19 #include "base/bind.h" | 
| 19 #include "base/compiler_specific.h" | 20 #include "base/compiler_specific.h" | 
| 20 #include "base/memory/ptr_util.h" | 21 #include "base/memory/ptr_util.h" | 
|  | 22 #include "base/test/test_mock_time_task_runner.h" | 
|  | 23 #include "base/threading/thread_task_runner_handle.h" | 
| 21 #include "gpu/command_buffer/client/client_test_helper.h" | 24 #include "gpu/command_buffer/client/client_test_helper.h" | 
| 22 #include "gpu/command_buffer/client/gles2_cmd_helper.h" | 25 #include "gpu/command_buffer/client/gles2_cmd_helper.h" | 
| 23 #include "gpu/command_buffer/client/program_info_manager.h" | 26 #include "gpu/command_buffer/client/program_info_manager.h" | 
| 24 #include "gpu/command_buffer/client/query_tracker.h" | 27 #include "gpu/command_buffer/client/query_tracker.h" | 
| 25 #include "gpu/command_buffer/client/ring_buffer.h" | 28 #include "gpu/command_buffer/client/ring_buffer.h" | 
| 26 #include "gpu/command_buffer/client/shared_memory_limits.h" | 29 #include "gpu/command_buffer/client/shared_memory_limits.h" | 
| 27 #include "gpu/command_buffer/client/transfer_buffer.h" | 30 #include "gpu/command_buffer/client/transfer_buffer.h" | 
| 28 #include "gpu/command_buffer/common/command_buffer.h" | 31 #include "gpu/command_buffer/common/command_buffer.h" | 
| 29 #include "gpu/command_buffer/common/sync_token.h" | 32 #include "gpu/command_buffer/common/sync_token.h" | 
| 30 #include "testing/gmock/include/gmock/gmock.h" | 33 #include "testing/gmock/include/gmock/gmock.h" | 
| (...skipping 4589 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4620     auto visibility_0 = gl_->ClientBecameVisible(); | 4623     auto visibility_0 = gl_->ClientBecameVisible(); | 
| 4621     auto visibility_1 = gl_->ClientBecameVisible(); | 4624     auto visibility_1 = gl_->ClientBecameVisible(); | 
| 4622     EXPECT_TRUE(gl_->AnyClientsVisible()); | 4625     EXPECT_TRUE(gl_->AnyClientsVisible()); | 
| 4623     gl_->ClientBecameNotVisible(std::move(visibility_0)); | 4626     gl_->ClientBecameNotVisible(std::move(visibility_0)); | 
| 4624     EXPECT_TRUE(gl_->AnyClientsVisible()); | 4627     EXPECT_TRUE(gl_->AnyClientsVisible()); | 
| 4625     gl_->ClientBecameNotVisible(std::move(visibility_1)); | 4628     gl_->ClientBecameNotVisible(std::move(visibility_1)); | 
| 4626     EXPECT_FALSE(gl_->AnyClientsVisible()); | 4629     EXPECT_FALSE(gl_->AnyClientsVisible()); | 
| 4627   } | 4630   } | 
| 4628 } | 4631 } | 
| 4629 | 4632 | 
|  | 4633 TEST_F(GLES2ImplementationTest, ClientBusyBasic) { | 
|  | 4634   auto runner = make_scoped_refptr(new base::TestMockTimeTaskRunner()); | 
|  | 4635   base::ThreadTaskRunnerHandle handle(runner); | 
|  | 4636 | 
|  | 4637   bool signaled = false; | 
|  | 4638   gl_->SetIdleCallback( | 
|  | 4639       base::Bind([](bool* signaled) { *signaled = true; }, &signaled), runner); | 
|  | 4640   auto busy = gl_->ClientBecameBusy(); | 
|  | 4641   gl_->ClientBecameNotBusy(std::move(busy)); | 
|  | 4642 | 
|  | 4643   runner->FastForwardBy(base::TimeDelta::FromSeconds(5)); | 
|  | 4644   EXPECT_TRUE(signaled); | 
|  | 4645 } | 
|  | 4646 | 
|  | 4647 TEST_F(GLES2ImplementationTest, ClientBusyCancelled) { | 
|  | 4648   auto runner = make_scoped_refptr(new base::TestMockTimeTaskRunner()); | 
|  | 4649   base::ThreadTaskRunnerHandle handle(runner); | 
|  | 4650 | 
|  | 4651   bool signaled = false; | 
|  | 4652   gl_->SetIdleCallback( | 
|  | 4653       base::Bind([](bool* signaled) { *signaled = true; }, &signaled), runner); | 
|  | 4654   auto busy = gl_->ClientBecameBusy(); | 
|  | 4655 | 
|  | 4656   // This will trigger the idle callback to start counting down. | 
|  | 4657   gl_->ClientBecameNotBusy(std::move(busy)); | 
|  | 4658 | 
|  | 4659   // Immediately take another busy lock to stop the countdown. | 
|  | 4660   busy = gl_->ClientBecameBusy(); | 
|  | 4661 | 
|  | 4662   // Advance time and ensure that our callback was cancelled (does not run). | 
|  | 4663   runner->FastForwardBy(base::TimeDelta::FromSeconds(5)); | 
|  | 4664   EXPECT_FALSE(signaled); | 
|  | 4665 | 
|  | 4666   // Release our busy lock, and let the idle callback run. | 
|  | 4667   gl_->ClientBecameNotBusy(std::move(busy)); | 
|  | 4668 | 
|  | 4669   runner->FastForwardBy(base::TimeDelta::FromSeconds(5)); | 
|  | 4670   EXPECT_TRUE(signaled); | 
|  | 4671 } | 
|  | 4672 | 
| 4630 #include "base/macros.h" | 4673 #include "base/macros.h" | 
| 4631 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" | 4674 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" | 
| 4632 | 4675 | 
| 4633 }  // namespace gles2 | 4676 }  // namespace gles2 | 
| 4634 }  // namespace gpu | 4677 }  // namespace gpu | 
| OLD | NEW | 
|---|