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

Commit bffe0d6e authored by Ray Essick's avatar Ray Essick
Browse files

Add a function to learn max # of elements we can add to message

Bug: 253527618
Test: atest sf_foundation_test
Change-Id: I7966b4ed47287696eca25b9b68c275f247ec3e90
parent 943db3f3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -961,6 +961,11 @@ size_t AMessage::countEntries() const {
    return mItems.size();
}

/* static */
size_t AMessage::maxAllowedEntries() {
    return kMaxNumItems;
}

const char *AMessage::getEntryNameAt(size_t index, Type *type) const {
    if (index >= mItems.size()) {
        *type = kTypeInt32;
+1 −0
Original line number Diff line number Diff line
@@ -199,6 +199,7 @@ struct AMessage : public RefBase {
    };

    size_t countEntries() const;
    static size_t maxAllowedEntries();
    const char *getEntryNameAt(size_t index, Type *type) const;

    /**
+22 −0
Original line number Diff line number Diff line
@@ -53,6 +53,28 @@ public:
    MOCK_METHOD(void, onMessageReceived, (const sp<AMessage>&), (override));
};

TEST(AMessage_tests, countsAndLimits) {
  sp<AMessage> m1 = new AMessage();

  // clear, countEntries, maxAllowedEntries

  EXPECT_EQ(0, m1->countEntries());

  m1->setInt32("smaller", INT32_MAX - 2);
  m1->setInt64("big", INT64_MAX);
  m1->setString("bigBallOfString", "whatever");
  EXPECT_EQ(3, m1->countEntries());

  m1->clear();
  EXPECT_EQ(0, m1->countEntries());

  EXPECT_TRUE(m1->maxAllowedEntries() > 0);
  EXPECT_TRUE(AMessage::maxAllowedEntries() > 0);

  // static function, make sure we get a consistent answer
  EXPECT_EQ(m1->maxAllowedEntries(), AMessage::maxAllowedEntries());
}

TEST(AMessage_tests, settersAndGetters) {
  sp<AMessage> m1 = new AMessage();