@@ -3159,24 +3159,28 @@ TEST_F(MiscTest, StaticTypeNames) {
31593159
31603160 typedef FieldDescriptor FD; // avoid ugly line wrapping
31613161
3162- EXPECT_EQ(absl::string_view("double"), FD::TypeName(FD::TYPE_DOUBLE));
3163- EXPECT_EQ(absl::string_view("float"), FD::TypeName(FD::TYPE_FLOAT));
3164- EXPECT_EQ(absl::string_view("int64"), FD::TypeName(FD::TYPE_INT64));
3165- EXPECT_EQ(absl::string_view("uint64"), FD::TypeName(FD::TYPE_UINT64));
3166- EXPECT_EQ(absl::string_view("int32"), FD::TypeName(FD::TYPE_INT32));
3167- EXPECT_EQ(absl::string_view("fixed64"), FD::TypeName(FD::TYPE_FIXED64));
3168- EXPECT_EQ(absl::string_view("fixed32"), FD::TypeName(FD::TYPE_FIXED32));
3169- EXPECT_EQ(absl::string_view("bool"), FD::TypeName(FD::TYPE_BOOL));
3170- EXPECT_EQ(absl::string_view("string"), FD::TypeName(FD::TYPE_STRING));
3171- EXPECT_EQ(absl::string_view("group"), FD::TypeName(FD::TYPE_GROUP));
3172- EXPECT_EQ(absl::string_view("message"), FD::TypeName(FD::TYPE_MESSAGE));
3173- EXPECT_EQ(absl::string_view("bytes"), FD::TypeName(FD::TYPE_BYTES));
3174- EXPECT_EQ(absl::string_view("uint32"), FD::TypeName(FD::TYPE_UINT32));
3175- EXPECT_EQ(absl::string_view("enum"), FD::TypeName(FD::TYPE_ENUM));
3176- EXPECT_EQ(absl::string_view("sfixed32"), FD::TypeName(FD::TYPE_SFIXED32));
3177- EXPECT_EQ(absl::string_view("sfixed64"), FD::TypeName(FD::TYPE_SFIXED64));
3178- EXPECT_EQ(absl::string_view("sint32"), FD::TypeName(FD::TYPE_SINT32));
3179- EXPECT_EQ(absl::string_view("sint64"), FD::TypeName(FD::TYPE_SINT64));
3162+ EXPECT_EQ("ERROR", FD::TypeName(FD::Type{}));
3163+ EXPECT_EQ("double", FD::TypeName(FD::TYPE_DOUBLE));
3164+ EXPECT_EQ("float", FD::TypeName(FD::TYPE_FLOAT));
3165+ EXPECT_EQ("int64", FD::TypeName(FD::TYPE_INT64));
3166+ EXPECT_EQ("uint64", FD::TypeName(FD::TYPE_UINT64));
3167+ EXPECT_EQ("int32", FD::TypeName(FD::TYPE_INT32));
3168+ EXPECT_EQ("fixed64", FD::TypeName(FD::TYPE_FIXED64));
3169+ EXPECT_EQ("fixed32", FD::TypeName(FD::TYPE_FIXED32));
3170+ EXPECT_EQ("bool", FD::TypeName(FD::TYPE_BOOL));
3171+ EXPECT_EQ("string", FD::TypeName(FD::TYPE_STRING));
3172+ EXPECT_EQ("group", FD::TypeName(FD::TYPE_GROUP));
3173+ EXPECT_EQ("message", FD::TypeName(FD::TYPE_MESSAGE));
3174+ EXPECT_EQ("bytes", FD::TypeName(FD::TYPE_BYTES));
3175+ EXPECT_EQ("uint32", FD::TypeName(FD::TYPE_UINT32));
3176+ EXPECT_EQ("enum", FD::TypeName(FD::TYPE_ENUM));
3177+ EXPECT_EQ("sfixed32", FD::TypeName(FD::TYPE_SFIXED32));
3178+ EXPECT_EQ("sfixed64", FD::TypeName(FD::TYPE_SFIXED64));
3179+ EXPECT_EQ("sint32", FD::TypeName(FD::TYPE_SINT32));
3180+ EXPECT_EQ("sint64", FD::TypeName(FD::TYPE_SINT64));
3181+
3182+ EXPECT_DEATH((void)FD::TypeName(static_cast<FD::Type>(FD::MAX_TYPE + 1)),
3183+ "Invalid input value");
31803184}
31813185
31823186TEST_F(MiscTest, CppTypes) {
@@ -3252,16 +3256,48 @@ TEST_F(MiscTest, StaticCppTypeNames) {
32523256
32533257 typedef FieldDescriptor FD; // avoid ugly line wrapping
32543258
3255- EXPECT_EQ(absl::string_view("int32"), FD::CppTypeName(FD::CPPTYPE_INT32));
3256- EXPECT_EQ(absl::string_view("int64"), FD::CppTypeName(FD::CPPTYPE_INT64));
3257- EXPECT_EQ(absl::string_view("uint32"), FD::CppTypeName(FD::CPPTYPE_UINT32));
3258- EXPECT_EQ(absl::string_view("uint64"), FD::CppTypeName(FD::CPPTYPE_UINT64));
3259- EXPECT_EQ(absl::string_view("double"), FD::CppTypeName(FD::CPPTYPE_DOUBLE));
3260- EXPECT_EQ(absl::string_view("float"), FD::CppTypeName(FD::CPPTYPE_FLOAT));
3261- EXPECT_EQ(absl::string_view("bool"), FD::CppTypeName(FD::CPPTYPE_BOOL));
3262- EXPECT_EQ(absl::string_view("enum"), FD::CppTypeName(FD::CPPTYPE_ENUM));
3263- EXPECT_EQ(absl::string_view("string"), FD::CppTypeName(FD::CPPTYPE_STRING));
3264- EXPECT_EQ(absl::string_view("message"), FD::CppTypeName(FD::CPPTYPE_MESSAGE));
3259+ EXPECT_EQ("ERROR", FD::CppTypeName(FD::CppType{}));
3260+ EXPECT_EQ("int32", FD::CppTypeName(FD::CPPTYPE_INT32));
3261+ EXPECT_EQ("int64", FD::CppTypeName(FD::CPPTYPE_INT64));
3262+ EXPECT_EQ("uint32", FD::CppTypeName(FD::CPPTYPE_UINT32));
3263+ EXPECT_EQ("uint64", FD::CppTypeName(FD::CPPTYPE_UINT64));
3264+ EXPECT_EQ("double", FD::CppTypeName(FD::CPPTYPE_DOUBLE));
3265+ EXPECT_EQ("float", FD::CppTypeName(FD::CPPTYPE_FLOAT));
3266+ EXPECT_EQ("bool", FD::CppTypeName(FD::CPPTYPE_BOOL));
3267+ EXPECT_EQ("enum", FD::CppTypeName(FD::CPPTYPE_ENUM));
3268+ EXPECT_EQ("string", FD::CppTypeName(FD::CPPTYPE_STRING));
3269+ EXPECT_EQ("message", FD::CppTypeName(FD::CPPTYPE_MESSAGE));
3270+
3271+ EXPECT_DEATH(
3272+ (void)FD::CppTypeName(static_cast<FD::CppType>(FD::MAX_CPPTYPE + 1)),
3273+ "Invalid input value");
3274+ }
3275+
3276+ TEST_F(MiscTest, StaticTypeToCppType) {
3277+ typedef FieldDescriptor FD; // avoid ugly line wrapping
3278+ //
3279+ EXPECT_EQ(FD::CppType{}, FD::TypeToCppType(FD::Type{}));
3280+ EXPECT_EQ(FD::CPPTYPE_DOUBLE, FD::TypeToCppType(FD::TYPE_DOUBLE));
3281+ EXPECT_EQ(FD::CPPTYPE_FLOAT, FD::TypeToCppType(FD::TYPE_FLOAT));
3282+ EXPECT_EQ(FD::CPPTYPE_INT64, FD::TypeToCppType(FD::TYPE_INT64));
3283+ EXPECT_EQ(FD::CPPTYPE_UINT64, FD::TypeToCppType(FD::TYPE_UINT64));
3284+ EXPECT_EQ(FD::CPPTYPE_INT32, FD::TypeToCppType(FD::TYPE_INT32));
3285+ EXPECT_EQ(FD::CPPTYPE_UINT64, FD::TypeToCppType(FD::TYPE_FIXED64));
3286+ EXPECT_EQ(FD::CPPTYPE_UINT32, FD::TypeToCppType(FD::TYPE_FIXED32));
3287+ EXPECT_EQ(FD::CPPTYPE_BOOL, FD::TypeToCppType(FD::TYPE_BOOL));
3288+ EXPECT_EQ(FD::CPPTYPE_STRING, FD::TypeToCppType(FD::TYPE_STRING));
3289+ EXPECT_EQ(FD::CPPTYPE_MESSAGE, FD::TypeToCppType(FD::TYPE_GROUP));
3290+ EXPECT_EQ(FD::CPPTYPE_MESSAGE, FD::TypeToCppType(FD::TYPE_MESSAGE));
3291+ EXPECT_EQ(FD::CPPTYPE_STRING, FD::TypeToCppType(FD::TYPE_BYTES));
3292+ EXPECT_EQ(FD::CPPTYPE_UINT32, FD::TypeToCppType(FD::TYPE_UINT32));
3293+ EXPECT_EQ(FD::CPPTYPE_ENUM, FD::TypeToCppType(FD::TYPE_ENUM));
3294+ EXPECT_EQ(FD::CPPTYPE_INT32, FD::TypeToCppType(FD::TYPE_SFIXED32));
3295+ EXPECT_EQ(FD::CPPTYPE_INT64, FD::TypeToCppType(FD::TYPE_SFIXED64));
3296+ EXPECT_EQ(FD::CPPTYPE_INT32, FD::TypeToCppType(FD::TYPE_SINT32));
3297+ EXPECT_EQ(FD::CPPTYPE_INT64, FD::TypeToCppType(FD::TYPE_SINT64));
3298+
3299+ EXPECT_DEATH((void)FD::TypeToCppType(static_cast<FD::Type>(FD::MAX_TYPE + 1)),
3300+ "Invalid input value");
32653301}
32663302
32673303TEST_F(MiscTest, MessageType) {
0 commit comments