// 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