| // 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 "gpu/command_buffer/common/debug_marker_manager.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "ui/gl/gl_mock.h" |
| |
| namespace gpu { |
| namespace gles2 { |
| |
| class DebugMarkerManagerTest : public testing::Test { |
| protected: |
| void SetUp() override {} |
| |
| void TearDown() override {} |
| |
| DebugMarkerManager manager_; |
| }; |
| |
| TEST_F(DebugMarkerManagerTest, Basic) { |
| // Test we can get root |
| EXPECT_STREQ("", manager_.GetMarker().c_str()); |
| // Test it's safe to pop an empty stack. |
| manager_.PopGroup(); |
| // Test we can still get root. |
| EXPECT_STREQ("", manager_.GetMarker().c_str()); |
| // Test setting a marker. |
| manager_.SetMarker("mark1"); |
| EXPECT_STREQ(".mark1", manager_.GetMarker().c_str()); |
| manager_.SetMarker("mark2"); |
| EXPECT_STREQ(".mark2", manager_.GetMarker().c_str()); |
| // Test pushing a group. |
| manager_.PushGroup("abc"); |
| EXPECT_STREQ(".abc", manager_.GetMarker().c_str()); |
| // Test setting a marker on the group |
| manager_.SetMarker("mark3"); |
| EXPECT_STREQ(".abc.mark3", manager_.GetMarker().c_str()); |
| manager_.SetMarker("mark4"); |
| EXPECT_STREQ(".abc.mark4", manager_.GetMarker().c_str()); |
| // Test pushing a 2nd group. |
| manager_.PushGroup("def"); |
| EXPECT_STREQ(".abc.def", manager_.GetMarker().c_str()); |
| // Test setting a marker on the group |
| manager_.SetMarker("mark5"); |
| EXPECT_STREQ(".abc.def.mark5", manager_.GetMarker().c_str()); |
| manager_.SetMarker("mark6"); |
| EXPECT_STREQ(".abc.def.mark6", manager_.GetMarker().c_str()); |
| // Test poping 2nd group. |
| manager_.PopGroup(); |
| EXPECT_STREQ(".abc.mark4", manager_.GetMarker().c_str()); |
| manager_.PopGroup(); |
| EXPECT_STREQ(".mark2", manager_.GetMarker().c_str()); |
| manager_.PopGroup(); |
| EXPECT_STREQ(".mark2", manager_.GetMarker().c_str()); |
| } |
| |
| } // namespace gles2 |
| } // namespace gpu |
| |
| |