codec2: add setFlexSize() to flexible C2Param
Bug: 165694889
Change-Id: I23847ac72638cbfe4279dd9fcfc47eacc7021e3b
diff --git a/media/codec2/tests/C2Param_test.cpp b/media/codec2/tests/C2Param_test.cpp
index 564d4d2..c39605a 100644
--- a/media/codec2/tests/C2Param_test.cpp
+++ b/media/codec2/tests/C2Param_test.cpp
@@ -2328,6 +2328,17 @@
static_assert(std::is_same<decltype(blobValue->m.value), uint8_t[]>::value, "should be uint8_t[]");
EXPECT_EQ(0, memcmp(blobValue->m.value, "ABCD\0", 6));
EXPECT_EQ(6u, blobValue->flexCount());
+ blobValue->setFlexCount(7u); // increasing the count does not change it
+ EXPECT_EQ(6u, blobValue->flexCount());
+ blobValue->setFlexCount(2u); // decreasing the count changes it to it
+ EXPECT_EQ(2u, blobValue->flexCount());
+ blobValue->setFlexCount(0u); // can decrease to 0 and blob remains valid
+ EXPECT_EQ(0u, blobValue->flexCount());
+ EXPECT_TRUE(*blobValue);
+ blobValue->invalidate(); // flex params can be invalidated => results in 0 size
+ EXPECT_FALSE(*blobValue);
+ EXPECT_EQ(0u, blobValue->size());
+
std::vector<C2FieldDescriptor> fields = blobValue->FieldList();
EXPECT_EQ(1u, fields.size());
EXPECT_EQ(FD::BLOB, fields.cbegin()->type());