@@ -831,6 +831,9 @@ TEST_F(StructTest, TerseFields) {
831
831
EXPECT_TRUE (serializedField<ident::exception_field>(terse));
832
832
EXPECT_TRUE (serializedField<ident::cpp_ref_struct_field>(terse));
833
833
EXPECT_TRUE (serializedField<ident::cpp_ref_union_field>(terse));
834
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_struct_field>(terse));
835
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_union_field>(terse));
836
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_exception_field>(terse));
834
837
835
838
// cpp.ref exceptions are nullptr by default
836
839
EXPECT_FALSE (serializedField<ident::cpp_ref_exception_field>(terse));
@@ -842,6 +845,9 @@ TEST_F(StructTest, TerseFields) {
842
845
terse.cpp_ref_struct_field () = nullptr ;
843
846
terse.cpp_ref_union_field () = nullptr ;
844
847
terse.cpp_ref_exception_field () = nullptr ;
848
+ terse.cpp_shared_ref_struct_field () = nullptr ;
849
+ terse.cpp_shared_ref_union_field () = nullptr ;
850
+ terse.cpp_shared_ref_exception_field () = nullptr ;
845
851
846
852
// Numeric fields are serialized if they don't equal custom default
847
853
EXPECT_TRUE (serializedField<ident::bool_field>(terse));
@@ -864,7 +870,11 @@ TEST_F(StructTest, TerseFields) {
864
870
EXPECT_TRUE (serializedField<ident::struct_field>(terse));
865
871
EXPECT_TRUE (serializedField<ident::union_field>(terse));
866
872
EXPECT_TRUE (serializedField<ident::exception_field>(terse));
873
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_struct_field>(terse));
874
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_union_field>(terse));
875
+ EXPECT_TRUE (serializedField<ident::cpp_shared_ref_exception_field>(terse));
867
876
877
+ // @cpp.Ref has special logic that it skips nullptr fields
868
878
EXPECT_FALSE (serializedField<ident::cpp_ref_struct_field>(terse));
869
879
EXPECT_FALSE (serializedField<ident::cpp_ref_union_field>(terse));
870
880
EXPECT_FALSE (serializedField<ident::cpp_ref_exception_field>(terse));
0 commit comments