blob: 0bfbf48493a5a4789b76d6da3d7e66b7751013e3 [file] [log] [blame]
// Copyright 2013 The Flutter 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 "build_info.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <lib/async-loop/cpp/loop.h>
#include <lib/async-loop/default.h>
#include <lib/inspect/cpp/reader.h>
const std::string& inspect_node_name = "build_info_unittests";
void checkProperty(inspect::Hierarchy& root,
const std::string& name,
const std::string& expected_value) {
const inspect::Hierarchy* build_info = root.GetByPath({inspect_node_name});
EXPECT_TRUE(build_info != nullptr);
auto* actual_value =
build_info->node().get_property<inspect::StringPropertyValue>(name);
EXPECT_TRUE(actual_value != nullptr);
EXPECT_EQ(actual_value->value(), expected_value);
}
namespace dart_utils {
class BuildInfoTest : public ::testing::Test {
public:
static void SetUpTestSuite() {
async::Loop loop(&kAsyncLoopConfigAttachToCurrentThread);
auto context = sys::ComponentContext::Create();
RootInspectNode::Initialize(context.get());
}
};
TEST_F(BuildInfoTest, AllPropertiesAreDefined) {
EXPECT_NE(BuildInfo::DartSdkGitRevision(), "{{DART_SDK_GIT_REVISION}}");
EXPECT_NE(BuildInfo::DartSdkSemanticVersion(),
"{{DART_SDK_SEMANTIC_VERSION}}");
EXPECT_NE(BuildInfo::FlutterEngineGitRevision(),
"{{FLUTTER_ENGINE_GIT_REVISION}}");
EXPECT_NE(BuildInfo::FuchsiaSdkVersion(), "{{FUCHSIA_SDK_VERSION}}");
}
TEST_F(BuildInfoTest, AllPropertiesAreDumped) {
inspect::Node node =
dart_utils::RootInspectNode::CreateRootChild(inspect_node_name);
BuildInfo::Dump(node);
inspect::Hierarchy root =
inspect::ReadFromVmo(
std::move(
dart_utils::RootInspectNode::GetInspector()->DuplicateVmo()))
.take_value();
checkProperty(root, "dart_sdk_git_revision", BuildInfo::DartSdkGitRevision());
checkProperty(root, "dart_sdk_semantic_version",
BuildInfo::DartSdkSemanticVersion());
checkProperty(root, "flutter_engine_git_revision",
BuildInfo::FlutterEngineGitRevision());
checkProperty(root, "fuchsia_sdk_version", BuildInfo::FuchsiaSdkVersion());
}
} // namespace dart_utils