Loading tools/stats_log_api_gen/Collation.cpp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -237,6 +237,16 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, errorCount++; errorCount++; continue; continue; } } if (field->is_repeated() && !(javaType == JAVA_TYPE_ATTRIBUTION_CHAIN || javaType == JAVA_TYPE_KEY_VALUE_PAIR)) { print_error(field, "Repeated fields are not supported in atoms. Please make field %s not " "repeated.\n", field->name().c_str()); errorCount++; continue; } } } // Check that if there's an attribution chain, it's at position 1. // Check that if there's an attribution chain, it's at position 1. Loading tools/stats_log_api_gen/test.proto +16 −15 Original line number Original line Diff line number Diff line Loading @@ -41,21 +41,20 @@ enum AnEnum { message AllTypesAtom { message AllTypesAtom { repeated android.os.statsd.AttributionNode attribution_chain = 1; repeated android.os.statsd.AttributionNode attribution_chain = 1; optional double double_field = 2; optional float float_field = 2; optional float float_field = 3; optional int64 int64_field = 3; optional int64 int64_field = 4; optional uint64 uint64_field = 4; optional uint64 uint64_field = 5; optional int32 int32_field = 5; optional int32 int32_field = 6; optional fixed64 fixed64_field = 6; optional fixed64 fixed64_field = 7; optional fixed32 fixed32_field = 7; optional fixed32 fixed32_field = 8; optional bool bool_field = 8; optional bool bool_field = 9; optional string string_field = 9; optional string string_field = 10; optional uint32 uint32_field = 10; optional uint32 uint32_field = 11; optional AnEnum enum_field = 11; optional AnEnum enum_field = 12; optional sfixed32 sfixed32_field = 12; optional sfixed32 sfixed32_field = 13; optional sfixed64 sfixed64_field = 13; optional sfixed64 sfixed64_field = 14; optional sint32 sint32_field = 14; optional sint32 sint32_field = 15; optional sint64 sint64_field = 15; optional sint64 sint64_field = 16; } } message Event { message Event { Loading @@ -70,6 +69,8 @@ message Event { message BadTypesAtom { message BadTypesAtom { optional IntAtom bad_int_atom = 1; optional IntAtom bad_int_atom = 1; optional bytes bad_bytes = 2; optional bytes bad_bytes = 2; repeated int32 repeated_field = 3; optional double double_field = 4; } } message BadTypesEvent { message BadTypesEvent { Loading tools/stats_log_api_gen/test_collation.cpp +2 −3 Original line number Original line Diff line number Diff line Loading @@ -98,7 +98,6 @@ TEST(CollationTest, CollateStats) { EXPECT_SET_CONTAINS_SIGNATURE( EXPECT_SET_CONTAINS_SIGNATURE( atoms.signatures_to_modules, atoms.signatures_to_modules, JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain JAVA_TYPE_DOUBLE, // double JAVA_TYPE_FLOAT, // float JAVA_TYPE_FLOAT, // float JAVA_TYPE_LONG, // int64 JAVA_TYPE_LONG, // int64 JAVA_TYPE_LONG, // uint64 JAVA_TYPE_LONG, // uint64 Loading Loading @@ -157,13 +156,13 @@ TEST(CollationTest, NonMessageTypeFails) { } } /** /** * Test that atoms that have non-primitive types are rejected. * Test that atoms that have non-primitive types or repeated fields are rejected. */ */ TEST(CollationTest, FailOnBadTypes) { TEST(CollationTest, FailOnBadTypes) { Atoms atoms; Atoms atoms; int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms); int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms); EXPECT_EQ(2, errorCount); EXPECT_EQ(4, errorCount); } } /** /** Loading Loading
tools/stats_log_api_gen/Collation.cpp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -237,6 +237,16 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, errorCount++; errorCount++; continue; continue; } } if (field->is_repeated() && !(javaType == JAVA_TYPE_ATTRIBUTION_CHAIN || javaType == JAVA_TYPE_KEY_VALUE_PAIR)) { print_error(field, "Repeated fields are not supported in atoms. Please make field %s not " "repeated.\n", field->name().c_str()); errorCount++; continue; } } } // Check that if there's an attribution chain, it's at position 1. // Check that if there's an attribution chain, it's at position 1. Loading
tools/stats_log_api_gen/test.proto +16 −15 Original line number Original line Diff line number Diff line Loading @@ -41,21 +41,20 @@ enum AnEnum { message AllTypesAtom { message AllTypesAtom { repeated android.os.statsd.AttributionNode attribution_chain = 1; repeated android.os.statsd.AttributionNode attribution_chain = 1; optional double double_field = 2; optional float float_field = 2; optional float float_field = 3; optional int64 int64_field = 3; optional int64 int64_field = 4; optional uint64 uint64_field = 4; optional uint64 uint64_field = 5; optional int32 int32_field = 5; optional int32 int32_field = 6; optional fixed64 fixed64_field = 6; optional fixed64 fixed64_field = 7; optional fixed32 fixed32_field = 7; optional fixed32 fixed32_field = 8; optional bool bool_field = 8; optional bool bool_field = 9; optional string string_field = 9; optional string string_field = 10; optional uint32 uint32_field = 10; optional uint32 uint32_field = 11; optional AnEnum enum_field = 11; optional AnEnum enum_field = 12; optional sfixed32 sfixed32_field = 12; optional sfixed32 sfixed32_field = 13; optional sfixed64 sfixed64_field = 13; optional sfixed64 sfixed64_field = 14; optional sint32 sint32_field = 14; optional sint32 sint32_field = 15; optional sint64 sint64_field = 15; optional sint64 sint64_field = 16; } } message Event { message Event { Loading @@ -70,6 +69,8 @@ message Event { message BadTypesAtom { message BadTypesAtom { optional IntAtom bad_int_atom = 1; optional IntAtom bad_int_atom = 1; optional bytes bad_bytes = 2; optional bytes bad_bytes = 2; repeated int32 repeated_field = 3; optional double double_field = 4; } } message BadTypesEvent { message BadTypesEvent { Loading
tools/stats_log_api_gen/test_collation.cpp +2 −3 Original line number Original line Diff line number Diff line Loading @@ -98,7 +98,6 @@ TEST(CollationTest, CollateStats) { EXPECT_SET_CONTAINS_SIGNATURE( EXPECT_SET_CONTAINS_SIGNATURE( atoms.signatures_to_modules, atoms.signatures_to_modules, JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain JAVA_TYPE_DOUBLE, // double JAVA_TYPE_FLOAT, // float JAVA_TYPE_FLOAT, // float JAVA_TYPE_LONG, // int64 JAVA_TYPE_LONG, // int64 JAVA_TYPE_LONG, // uint64 JAVA_TYPE_LONG, // uint64 Loading Loading @@ -157,13 +156,13 @@ TEST(CollationTest, NonMessageTypeFails) { } } /** /** * Test that atoms that have non-primitive types are rejected. * Test that atoms that have non-primitive types or repeated fields are rejected. */ */ TEST(CollationTest, FailOnBadTypes) { TEST(CollationTest, FailOnBadTypes) { Atoms atoms; Atoms atoms; int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms); int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms); EXPECT_EQ(2, errorCount); EXPECT_EQ(4, errorCount); } } /** /** Loading