| // Copyright (c) 2010 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/service/id_manager.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace gpu { |
| namespace gles2 { |
| |
| class IdManagerTest : public testing::Test { |
| public: |
| IdManagerTest() = default; |
| |
| protected: |
| void SetUp() override {} |
| |
| void TearDown() override {} |
| |
| IdManager manager_; |
| }; |
| |
| TEST_F(IdManagerTest, Basic) { |
| const GLuint kClientId1 = 1; |
| const GLuint kClientId2 = 2; |
| const GLuint kServiceId1 = 201; |
| const GLuint kServiceId2 = 202; |
| // Check we can add an id |
| EXPECT_TRUE(manager_.AddMapping(kClientId1, kServiceId1)); |
| // Check we can get that mapping |
| GLuint service_id = 0; |
| EXPECT_TRUE(manager_.GetServiceId(kClientId1, &service_id)); |
| EXPECT_EQ(kServiceId1, service_id); |
| GLuint client_id = 0; |
| EXPECT_TRUE(manager_.GetClientId(kServiceId1, &client_id)); |
| EXPECT_EQ(kClientId1, client_id); |
| // Check that it fails if we get a non-existent id. |
| service_id = 0; |
| client_id = 0; |
| EXPECT_FALSE(manager_.GetServiceId(kClientId2, &service_id)); |
| EXPECT_FALSE(manager_.GetClientId(kServiceId2, &client_id)); |
| EXPECT_EQ(0u, service_id); |
| EXPECT_EQ(0u, client_id); |
| // Check we can add a second id. |
| EXPECT_TRUE(manager_.AddMapping(kClientId2, kServiceId2)); |
| // Check we can get that mapping |
| service_id = 0; |
| EXPECT_TRUE(manager_.GetServiceId(kClientId1, &service_id)); |
| EXPECT_EQ(kServiceId1, service_id); |
| EXPECT_TRUE(manager_.GetServiceId(kClientId2, &service_id)); |
| EXPECT_EQ(kServiceId2, service_id); |
| client_id = 0; |
| EXPECT_TRUE(manager_.GetClientId(kServiceId1, &client_id)); |
| EXPECT_EQ(kClientId1, client_id); |
| EXPECT_TRUE(manager_.GetClientId(kServiceId2, &client_id)); |
| EXPECT_EQ(kClientId2, client_id); |
| // Check if we remove an id we can no longer get it. |
| EXPECT_TRUE(manager_.RemoveMapping(kClientId1, kServiceId1)); |
| EXPECT_FALSE(manager_.GetServiceId(kClientId1, &service_id)); |
| EXPECT_FALSE(manager_.GetClientId(kServiceId1, &client_id)); |
| // Check we get an error if we try to remove a non-existent id. |
| EXPECT_FALSE(manager_.RemoveMapping(kClientId1, kServiceId1)); |
| EXPECT_FALSE(manager_.RemoveMapping(kClientId2, kServiceId1)); |
| EXPECT_FALSE(manager_.RemoveMapping(kClientId1, kServiceId2)); |
| // Check we get an error if we try to map an existing id. |
| EXPECT_FALSE(manager_.AddMapping(kClientId2, kServiceId2)); |
| EXPECT_FALSE(manager_.AddMapping(kClientId2, kServiceId1)); |
| } |
| |
| } // namespace gles2 |
| } // namespace gpu |
| |
| |