blob: 3fe930849c78f07e56abe40eab3a145430fd5ddf [file] [log] [blame]
// 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