summaryrefslogtreecommitdiff
path: root/service/src/com/android/telephony/imsmedia/lib
diff options
context:
space:
mode:
authorbodamnam <bodamnam@google.com>2023-03-16 08:52:49 +0000
committerbodamnam <bodamnam@google.com>2023-03-28 09:25:11 +0000
commit2229812bc19cb445198e186b44c8338f201976c3 (patch)
treeba26250e1544f43d4dfa161a159b8caa85f7c4dd /service/src/com/android/telephony/imsmedia/lib
parent06d0a0e72190f6840a138d41aa7399cffb345f7f (diff)
downloadImsMedia-2229812bc19cb445198e186b44c8338f201976c3.tar.gz
Add unit test for ImsMediaBitWriter/Reader
Bug: 272299058 Test: atest ImsMediaNativeTests Change-Id: I29af6ba0b4f2ca643df83a70841d63110f538f63
Diffstat (limited to 'service/src/com/android/telephony/imsmedia/lib')
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h6
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp35
2 files changed, 30 insertions, 11 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
index e4aa8ea9..693b2f5c 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaBitWriter.h
@@ -25,9 +25,9 @@ public:
ImsMediaBitWriter();
~ImsMediaBitWriter();
void SetBuffer(uint8_t* pbBuffer, uint32_t nBufferSize);
- void Write(uint32_t nValue, uint32_t nSize);
- void WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize);
- void WriteByteBuffer(uint32_t value);
+ bool Write(uint32_t nValue, uint32_t nSize);
+ bool WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize);
+ bool WriteByteBuffer(uint32_t value);
void Seek(uint32_t nSize);
void AddPadding();
uint32_t GetBufferSize();
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
index cba37f55..91d69581 100644
--- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
+++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaBitWriter.cpp
@@ -40,15 +40,17 @@ void ImsMediaBitWriter::SetBuffer(uint8_t* pbBuffer, uint32_t nBufferSize)
mMaxBufferSize = nBufferSize;
}
-void ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize)
+bool ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize)
{
if (nSize == 0)
- return;
+ {
+ return false;
+ }
if (mBuffer == nullptr || nSize > 24 || mBufferFull)
{
IMLOGE2("[Write] nSize[%d], BufferFull[%d]", nSize, mBufferFull);
- return;
+ return false;
}
// write to bit buffer
@@ -67,9 +69,11 @@ void ImsMediaBitWriter::Write(uint32_t nValue, uint32_t nSize)
{
mBufferFull = true;
}
+
+ return true;
}
-void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize)
+bool ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize)
{
uint32_t nByteSize;
uint32_t nRemainBitSize;
@@ -87,7 +91,10 @@ void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize)
for (i = 0; i < nByteSize; i++)
{
- Write(pbSrc[i], 8);
+ if (!Write(pbSrc[i], 8))
+ {
+ return false;
+ }
}
}
@@ -95,11 +102,17 @@ void ImsMediaBitWriter::WriteByteBuffer(uint8_t* pbSrc, uint32_t nBitSize)
{
uint32_t v = pbSrc[nByteSize];
v >>= (8 - nRemainBitSize);
- Write(v, nRemainBitSize);
+
+ if (!Write(v, nRemainBitSize))
+ {
+ return false;
+ }
}
+
+ return true;
}
-void ImsMediaBitWriter::WriteByteBuffer(uint32_t value)
+bool ImsMediaBitWriter::WriteByteBuffer(uint32_t value)
{
uint32_t nRemainBitSize = 32;
@@ -107,8 +120,14 @@ void ImsMediaBitWriter::WriteByteBuffer(uint32_t value)
{
nRemainBitSize -= 8;
uint8_t v = (value >> nRemainBitSize) & 0x00ff;
- Write(v, 8);
+
+ if (!Write(v, 8))
+ {
+ return false;
+ }
}
+
+ return true;
}
void ImsMediaBitWriter::Seek(uint32_t nSize)