Merge "Fail if there are repeated fields in atoms.proto" into rvc-dev am: 19282c3930
Change-Id: I16e2912c6c193f14f660beadd4f6276a12553ade
This commit is contained in:
@@ -237,6 +237,16 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl,
|
||||
errorCount++;
|
||||
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.
|
||||
|
||||
@@ -41,21 +41,20 @@ enum AnEnum {
|
||||
|
||||
message AllTypesAtom {
|
||||
repeated android.os.statsd.AttributionNode attribution_chain = 1;
|
||||
optional double double_field = 2;
|
||||
optional float float_field = 3;
|
||||
optional int64 int64_field = 4;
|
||||
optional uint64 uint64_field = 5;
|
||||
optional int32 int32_field = 6;
|
||||
optional fixed64 fixed64_field = 7;
|
||||
optional fixed32 fixed32_field = 8;
|
||||
optional bool bool_field = 9;
|
||||
optional string string_field = 10;
|
||||
optional uint32 uint32_field = 11;
|
||||
optional AnEnum enum_field = 12;
|
||||
optional sfixed32 sfixed32_field = 13;
|
||||
optional sfixed64 sfixed64_field = 14;
|
||||
optional sint32 sint32_field = 15;
|
||||
optional sint64 sint64_field = 16;
|
||||
optional float float_field = 2;
|
||||
optional int64 int64_field = 3;
|
||||
optional uint64 uint64_field = 4;
|
||||
optional int32 int32_field = 5;
|
||||
optional fixed64 fixed64_field = 6;
|
||||
optional fixed32 fixed32_field = 7;
|
||||
optional bool bool_field = 8;
|
||||
optional string string_field = 9;
|
||||
optional uint32 uint32_field = 10;
|
||||
optional AnEnum enum_field = 11;
|
||||
optional sfixed32 sfixed32_field = 12;
|
||||
optional sfixed64 sfixed64_field = 13;
|
||||
optional sint32 sint32_field = 14;
|
||||
optional sint64 sint64_field = 15;
|
||||
}
|
||||
|
||||
message Event {
|
||||
@@ -70,6 +69,8 @@ message Event {
|
||||
message BadTypesAtom {
|
||||
optional IntAtom bad_int_atom = 1;
|
||||
optional bytes bad_bytes = 2;
|
||||
repeated int32 repeated_field = 3;
|
||||
optional double double_field = 4;
|
||||
}
|
||||
|
||||
message BadTypesEvent {
|
||||
|
||||
@@ -98,7 +98,6 @@ TEST(CollationTest, CollateStats) {
|
||||
EXPECT_SET_CONTAINS_SIGNATURE(
|
||||
atoms.signatures_to_modules,
|
||||
JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain
|
||||
JAVA_TYPE_DOUBLE, // double
|
||||
JAVA_TYPE_FLOAT, // float
|
||||
JAVA_TYPE_LONG, // int64
|
||||
JAVA_TYPE_LONG, // uint64
|
||||
@@ -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) {
|
||||
Atoms atoms;
|
||||
int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms);
|
||||
|
||||
EXPECT_EQ(2, errorCount);
|
||||
EXPECT_EQ(4, errorCount);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user