blob: 31e65c10ae86e3c0736a293053e78264dab8c24e [file] [log] [blame]
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
#include "google/protobuf/compiler/versions.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "google/protobuf/test_textproto.h"
namespace google {
namespace protobuf {
namespace compiler {
namespace internal {
namespace {
TEST(ParseProtobufVersionTest, EmptyVersionString) {
EXPECT_DEATH({ ParseProtobufVersion(""); }, "version cannot be empty.");
}
TEST(ParseProtobufVersionTest, MissingVersionSegment) {
EXPECT_DEATH({ ParseProtobufVersion("3.26-dev"); },
"version string must provide major, minor and micro numbers.");
}
TEST(ParseProtobufVersionTest, RedundantVersionSuffix) {
EXPECT_DEATH({ ParseProtobufVersion("3.26-dev-rc1"); },
"version cannot have more than one suffix annotated by \"-\".");
}
TEST(ParseProtobufVersionTest, FullVersionWithRCSuffix) {
EXPECT_THAT(ParseProtobufVersion("3.26.2-rc1"),
EqualsProto(R"pb(major: 3 minor: 26 patch: 2 suffix: "-rc1")pb"));
}
TEST(ParseProtobufVersionTest, FullVersionWithoutSuffix) {
EXPECT_THAT(ParseProtobufVersion("3.26.2"),
EqualsProto(R"pb(major: 3 minor: 26 patch: 2)pb"));
}
TEST(ParseProtobufVersionTest, VersionWithDevSuffix) {
EXPECT_THAT(ParseProtobufVersion("3.26.0-dev"),
EqualsProto(R"pb(major: 3 minor: 26 patch: 0 suffix: "-dev")pb"));
}
} // namespace
} // namespace internal
} // namespace compiler
} // namespace protobuf
} // namespace google