chromium/chromecast/crash/build_info_unittest.cc

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromecast/crash/build_info.h"

#include <string>

#include "chromecast/base/version.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace chromecast {

constexpr char kIncrementalUserBuild[] = "1.51.user.ldap.20200813.124713";
constexpr char kIncrementalEngBuild[] = "1.51.eng.ldap.20200813.124713";
constexpr char kReleaseBuild[] = "1.51.224083";

TEST(VersionStringTest, VersionStringIsNonEmpty) {
  ASSERT_FALSE(GetVersionString().empty());
}

TEST(VersionStringTest, VersionStringIsCorrect) {
  ASSERT_EQ(GetVersionString(kReleaseBuild, kIncrementalEngBuild),
            "1.51.224083.1.51.eng");
}

TEST(VersionStringTest, EmptyVersionStringIsCorrect) {
  ASSERT_FALSE(GetVersionString("", "").empty());
}

TEST(VersionStringTest, ReleaseVersionUnchanged) {
  ASSERT_EQ(VersionToCrashString(kReleaseBuild), kReleaseBuild);
}

TEST(VersionStringTest, IncrementalVersionTruncated) {
  ASSERT_EQ(VersionToCrashString(kIncrementalEngBuild), "1.51.eng");
  ASSERT_EQ(VersionToCrashString(kIncrementalUserBuild), "1.51.user");
}

TEST(GetBuildVariantTest, InfixPresent) {
  ASSERT_EQ(VersionToVariant(kIncrementalEngBuild), "eng");
  ASSERT_EQ(VersionToVariant(kIncrementalUserBuild), "user");
}

TEST(GetBuildVariantTest, InfixAbsent) {
  // If infix is absent, will use debug macro to determine variant.
  bool is_eng = CAST_IS_DEBUG_BUILD();
  ASSERT_EQ(VersionToVariant(kReleaseBuild) == "eng", is_eng);
}

}  // namespace chromecast