| // Copyright (c) 2017 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/activity_flags.h" | |
| #include "testing/gtest/include/gtest/gtest.h" | |
| namespace gpu { | |
| TEST(ActivityFlagsTest, BasicUsage) { | |
| // Create the host activity flags. | |
| GpuProcessHostActivityFlags host_flags; | |
| EXPECT_FALSE( | |
| host_flags.IsFlagSet(ActivityFlagsBase::FLAG_LOADING_PROGRAM_BINARY)); | |
| // Create the service activity flags from host memory. | |
| GpuProcessActivityFlags service_flags(host_flags.CloneHandle()); | |
| // Ensure we can set and re-set flags. | |
| { | |
| GpuProcessActivityFlags::ScopedSetFlag scoped_set_flag( | |
| &service_flags, ActivityFlagsBase::FLAG_LOADING_PROGRAM_BINARY); | |
| EXPECT_TRUE( | |
| host_flags.IsFlagSet(ActivityFlagsBase::FLAG_LOADING_PROGRAM_BINARY)); | |
| } | |
| EXPECT_FALSE( | |
| host_flags.IsFlagSet(ActivityFlagsBase::FLAG_LOADING_PROGRAM_BINARY)); | |
| } | |
| TEST(ActivityFlagsTest, NotInitialized) { | |
| // Get the service activity flags without providing host memory. | |
| auto buffer = mojo::ScopedSharedBufferHandle(); | |
| GpuProcessActivityFlags service_flags(std::move(buffer)); | |
| // Set/Unset should not crash. | |
| { | |
| GpuProcessActivityFlags::ScopedSetFlag scoped_set_flag( | |
| &service_flags, ActivityFlagsBase::FLAG_LOADING_PROGRAM_BINARY); | |
| } | |
| } | |
| } // namespace gpu |