// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include "base/fuchsia/system_info.h" #include "base/test/gtest_util.h" namespace base { // Ensures that when FetchAndCacheSystemInfo() has not been called in the // process that a DCHECK fires to alert the developer. TEST(BuildInfoDeathTest, GetCachedBuildInfo_DcheckIfNotAlreadyFetched) { // Clear the cached build info to force an error condition. ClearCachedSystemInfoForTesting(); EXPECT_DCHECK_DEATH_WITH( { GetCachedBuildInfo(); }, "FetchAndCacheSystemInfo\\(\\) has not been called in this process"); // All test processes have BuildInfo cached before tests are run. Re-fetch and // cache the BuildInfo to restore that state for any tests that are // subsequently run in the same process as this one. EXPECT_TRUE(FetchAndCacheSystemInfo()); } TEST(BuildInfoTest, GetCachedBuildInfo_CheckExpectedValues) { // Ensure the cached BuildInfo is in a known state. ClearCachedSystemInfoForTesting(); ASSERT_TRUE(FetchAndCacheSystemInfo()); // TODO(crbug.com/1326674): Check for specific values once Fuchsia // completes the requested changes to the data returned from the fake. EXPECT_TRUE(GetCachedBuildInfo().product_config().has_value()); EXPECT_TRUE(GetCachedBuildInfo().board_config().has_value()); EXPECT_TRUE(GetCachedBuildInfo().version().has_value()); EXPECT_TRUE(GetCachedBuildInfo().latest_commit_date().has_value()); } } // namespace base