Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 956fa8a6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fail if there are repeated fields in atoms.proto"

parents ef06765c ae2a1eec
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -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.
+16 −15
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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 {
+2 −3
Original line number Original line Diff line number Diff line
@@ -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
@@ -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);
}
}


/**
/**