ref: f7239b6bd2a4c4665088359247730396af54f35d
parent: 2081df8b25fe8fd781406f1fbf787305f0db7b41
author: huili2 <[email protected]>
date: Tue Mar 14 16:44:00 EDT 2017
modify UT low memory cases
--- a/test/common/CWelsListTest.cpp
+++ b/test/common/CWelsListTest.cpp
@@ -9,7 +9,7 @@
int a = 0;
for (int i = 0; i < 60; i++) {
- cTestList.push_back (&a);
+ ASSERT_TRUE (cTestList.push_back (&a));
EXPECT_TRUE (1 == cTestList.size()) << "after push size=" << cTestList.size() ;
cTestList.pop_front();
@@ -26,7 +26,7 @@
for (int i = 0; i < 10; i++) {
EXPECT_TRUE (i == cTestList.size()) << "before push size=" << cTestList.size() ;
- EXPECT_TRUE (cTestList.push_back (pPointer));
+ ASSERT_TRUE (cTestList.push_back (pPointer));
}
EXPECT_TRUE (10 == cTestList.size()) << "after push size=" << cTestList.size() ;
@@ -44,7 +44,7 @@
int a = 0;
int* pPointer = &a;
- EXPECT_TRUE (cTestList.push_back (pPointer));
+ ASSERT_TRUE (cTestList.push_back (pPointer));
pPointer = NULL;
EXPECT_FALSE (cTestList.push_back (pPointer));
@@ -53,7 +53,7 @@
pPointer = &a;
EXPECT_TRUE (cTestList.findNode (pPointer));
- EXPECT_TRUE (cTestList.push_back (pPointer));
+ ASSERT_TRUE (cTestList.push_back (pPointer));
}
@@ -68,7 +68,7 @@
for (int j = 0; j < 10; j++) {
for (int i = 0; i < kiIncreaseNum; i++) {
- EXPECT_TRUE (cTestList.push_back (pPointer));
+ ASSERT_TRUE (cTestList.push_back (pPointer));
}
EXPECT_TRUE (kiIncreaseNum + j * (kiIncreaseNum - kiDecreaseNum) == cTestList.size()) << "after push size=" <<
cTestList.size() ;
@@ -93,7 +93,7 @@
EXPECT_TRUE (0 == cTestList.size());
for (int i = 0; i < kiIncreaseNum; i++) {
- EXPECT_TRUE (cTestList.push_back (pPointer));
+ ASSERT_TRUE (cTestList.push_back (pPointer));
}
for (int i = kiDecreaseNum; i > 0; i--) {
@@ -118,7 +118,7 @@
for (int i = 0; i < TEST_LEN; i++) {
a[i] = i;
- cTestList.push_back (&a[i]);
+ ASSERT_TRUE (cTestList.push_back (&a[i]));
}
EXPECT_TRUE (cTestList.size() == TEST_LEN);
@@ -153,7 +153,7 @@
for (int i = 0; i < TEST_LEN; i++) {
data[i] = i;
- cTestList.push_back (&data[i]);
+ ASSERT_TRUE (cTestList.push_back (&data[i]));
}
EXPECT_TRUE (cTestList.size() == TEST_LEN);
@@ -191,7 +191,7 @@
for (int i = 0; i < TEST_LEN_10; i++) {
data[i] = i;
- cTestList.push_back (&data[i]);
+ ASSERT_TRUE (cTestList.push_back (&data[i]));
}
EXPECT_TRUE (cTestList.size() == TEST_LEN_10);
@@ -223,7 +223,7 @@
//expand
int iAddLen = rand() % 65535;
for (int i = 0; i < iAddLen; i++) {
- EXPECT_TRUE (cTestList.push_back (&data[0]));
+ ASSERT_TRUE (cTestList.push_back (&data[0]));
}
EXPECT_TRUE ((iCurrentLen + iAddLen) == cTestList.size());
EraseOneInList (cTestList, &data[0]);
@@ -248,9 +248,9 @@
int32_t* pObject3 = &c;
//initial adding
- EXPECT_TRUE (cNonDuplicatedIntList.push_back (pObject1));
- EXPECT_TRUE (cNonDuplicatedIntList.push_back (pObject2));
- EXPECT_TRUE (cNonDuplicatedIntList.push_back (pObject3));
+ ASSERT_TRUE (cNonDuplicatedIntList.push_back (pObject1));
+ ASSERT_TRUE (cNonDuplicatedIntList.push_back (pObject2));
+ ASSERT_TRUE (cNonDuplicatedIntList.push_back (pObject3));
EXPECT_TRUE (3 == cNonDuplicatedIntList.size());
//try failed adding
@@ -270,7 +270,7 @@
EXPECT_TRUE (2 == cNonDuplicatedIntList.size());
//add back
- EXPECT_TRUE (cNonDuplicatedIntList.push_back (pObject1));
+ ASSERT_TRUE (cNonDuplicatedIntList.push_back (pObject1));
EXPECT_TRUE (3 == cNonDuplicatedIntList.size());
//another pop
@@ -282,7 +282,7 @@
EXPECT_FALSE (cNonDuplicatedIntList.push_back (pObject1));
EXPECT_TRUE (1 == cNonDuplicatedIntList.size());
- EXPECT_TRUE (cNonDuplicatedIntList.push_back (pObject3));
+ ASSERT_TRUE (cNonDuplicatedIntList.push_back (pObject3));
EXPECT_TRUE (2 == cNonDuplicatedIntList.size());
//clean-up
@@ -303,9 +303,9 @@
EXPECT_TRUE (NULL != pTaskThread3);
//initial adding
- EXPECT_TRUE (cThreadList.push_back (pTaskThread1));
- EXPECT_TRUE (cThreadList.push_back (pTaskThread2));
- EXPECT_TRUE (cThreadList.push_back (pTaskThread3));
+ ASSERT_TRUE (cThreadList.push_back (pTaskThread1));
+ ASSERT_TRUE (cThreadList.push_back (pTaskThread2));
+ ASSERT_TRUE (cThreadList.push_back (pTaskThread3));
EXPECT_TRUE (3 == cThreadList.size());
//try failed adding
@@ -325,7 +325,7 @@
EXPECT_TRUE (2 == cThreadList.size());
//add back
- EXPECT_TRUE (cThreadList.push_back (pTaskThread1));
+ ASSERT_TRUE (cThreadList.push_back (pTaskThread1));
EXPECT_TRUE (3 == cThreadList.size());
//another pop
@@ -337,7 +337,7 @@
EXPECT_FALSE (cThreadList.push_back (pTaskThread1));
EXPECT_TRUE (1 == cThreadList.size());
- EXPECT_TRUE (cThreadList.push_back (pTaskThread3));
+ ASSERT_TRUE (cThreadList.push_back (pTaskThread3));
EXPECT_TRUE (2 == cThreadList.size());
//clean-up
@@ -369,7 +369,7 @@
for (int j = 0; j < 10; j++) {
const int iBias = j * (kiIncreaseNum - kiDecreaseNum);
for (int i = 0; i < kiIncreaseNum; i++) {
- cThreadList.push_back (&pInput[i + kiIncreaseNum * j]);
+ ASSERT_TRUE (cThreadList.push_back (&pInput[i + kiIncreaseNum * j]));
}
EXPECT_TRUE (kiIncreaseNum + iBias == cThreadList.size()) << "after push size=" <<
cThreadList.size() ;
--- a/test/decoder/DecUT_ParseSyntax.cpp
+++ b/test/decoder/DecUT_ParseSyntax.cpp
@@ -132,9 +132,9 @@
//Uninit members
void Uninit();
//Decoder real bitstream
- void DecodeBs (const char* sFileName);
+ bool DecodeBs (const char* sFileName);
//Parse real bitstream
- void ParseBs (const char* sFileName);
+ bool ParseBs (const char* sFileName);
//Scalinglist
void TestScalingList();
//specific bitstream test
@@ -175,11 +175,16 @@
m_iBufLength = 4;
//
m_pCtx = (PWelsDecoderContext)malloc (sizeof (SWelsDecoderContext));
-
+ if (m_pCtx == NULL)
+ return ERR_MALLOC_FAILED;
memset (m_pCtx, 0, sizeof (SWelsDecoderContext));
m_pWelsTrace = new welsCodecTrace();
if (m_pWelsTrace != NULL) {
m_pWelsTrace->SetTraceLevel (WELS_LOG_ERROR);
+ } else {
+ free (m_pCtx);
+ m_pCtx = NULL;
+ return ERR_MALLOC_FAILED;
}
CM_RETURN eRet = (CM_RETURN)Initialize (&m_sDecParam, m_pCtx, &m_pWelsTrace->m_sLogCtx);
return (int32_t)eRet;
@@ -199,7 +204,7 @@
m_iBufLength = 0;
}
-void DecoderParseSyntaxTest::DecodeBs (const char* sFileName) {
+bool DecoderParseSyntaxTest::DecodeBs (const char* sFileName) {
uint8_t* pBuf = NULL;
int32_t iBufPos = 0;
@@ -213,15 +218,28 @@
#if defined(ANDROID_NDK)
std::string filename = std::string ("/sdcard/") + sFileName;
- ASSERT_TRUE ((pH264File = fopen (filename.c_str(), "rb")) != NULL);
+ if ((pH264File = fopen (filename.c_str(), "rb")) == NULL)
+ return false;
#else
- ASSERT_TRUE ((pH264File = fopen (sFileName, "rb")) != NULL);
+ if ((pH264File = fopen (sFileName, "rb")) == NULL)
+ return false;
#endif
fseek (pH264File, 0L, SEEK_END);
iFileSize = (int32_t) ftell (pH264File);
fseek (pH264File, 0L, SEEK_SET);
pBuf = new uint8_t[iFileSize + 4];
- ASSERT_EQ (fread (pBuf, 1, iFileSize, pH264File), (unsigned int) iFileSize);
+ if (pBuf == NULL) {
+ fclose (pH264File);
+ return false;
+ }
+ if ((fread (pBuf, 1, iFileSize, pH264File) != (unsigned int) iFileSize)) {
+ fclose (pH264File);
+ if (pBuf) {
+ delete[] pBuf;
+ pBuf = NULL;
+ }
+ return false;
+ }
memcpy (pBuf + iFileSize, &uiStartCode[0], 4); //confirmed_safe_unsafe_usage
while (true) {
if (iBufPos >= iFileSize) {
@@ -250,9 +268,9 @@
pBuf = NULL;
}
-
+ return true;
}
-void DecoderParseSyntaxTest::ParseBs (const char* sFileName) {
+bool DecoderParseSyntaxTest::ParseBs (const char* sFileName) {
uint8_t* pBuf = NULL;
int32_t iBufPos = 0;
@@ -267,15 +285,28 @@
#if defined(ANDROID_NDK)
std::string filename = std::string ("/sdcard/") + sFileName;
- ASSERT_TRUE ((pH264File = fopen (filename.c_str(), "rb")) != NULL);
+ if ((pH264File = fopen (filename.c_str(), "rb")) == NULL)
+ return false;
#else
- ASSERT_TRUE ((pH264File = fopen (sFileName, "rb")) != NULL);
+ if ((pH264File = fopen (sFileName, "rb")) == NULL)
+ return false;
#endif
fseek (pH264File, 0L, SEEK_END);
iFileSize = (int32_t)ftell (pH264File);
fseek (pH264File, 0L, SEEK_SET);
pBuf = new uint8_t[iFileSize + 4];
- ASSERT_EQ (fread (pBuf, 1, iFileSize, pH264File), (unsigned int)iFileSize);
+ if (pBuf == NULL) {
+ fclose (pH264File);
+ return false;
+ }
+ if (fread (pBuf, 1, iFileSize, pH264File) != (unsigned int)iFileSize) {
+ fclose (pH264File);
+ if (pBuf) {
+ delete[] pBuf;
+ pBuf = NULL;
+ }
+ return false;
+ }
memcpy (pBuf + iFileSize, &uiStartCode[0], 4); //confirmed_safe_unsafe_usage
while (true) {
if (iBufPos >= iFileSize) {
@@ -308,7 +339,7 @@
pBuf = NULL;
}
-
+ return true;
}
@@ -335,7 +366,7 @@
int32_t iRet = ERR_NONE;
iRet = Init();
ASSERT_EQ (iRet, ERR_NONE);
- DecodeBs ("res/BA_MW_D.264");
+ ASSERT_TRUE (DecodeBs ("res/BA_MW_D.264"));
ASSERT_TRUE (m_pCtx->sSpsBuffer[0].bSeqScalingMatrixPresentFlag == false);
EXPECT_EQ (0, memcmp (iScalingListZero, m_pCtx->sSpsBuffer[0].iScalingList4x4, 6 * 16 * sizeof (uint8_t)));
ASSERT_TRUE (m_pCtx->sPpsBuffer[0].bPicScalingMatrixPresentFlag == false);
@@ -344,7 +375,7 @@
//Scalinglist value just written into sps and pps
iRet = Init();
ASSERT_EQ (iRet, ERR_NONE);
- DecodeBs ("res/test_scalinglist_jm.264");
+ ASSERT_TRUE (DecodeBs ("res/test_scalinglist_jm.264"));
ASSERT_TRUE (m_pCtx->sSpsBuffer[0].bSeqScalingMatrixPresentFlag);
for (int i = 0; i < 6; i++) {
EXPECT_EQ (0, memcmp (iScalingList[i], m_pCtx->sSpsBuffer[0].iScalingList4x4[i], 16 * sizeof (uint8_t)));
@@ -364,7 +395,7 @@
m_sDecParam.eEcActiveIdc = ERROR_CON_DISABLE;
iRet = m_pDec->Initialize (&m_sDecParam);
ASSERT_EQ (iRet, ERR_NONE);
- ParseBs ("res/jm_1080p_allslice.264");
+ ASSERT_TRUE (ParseBs ("res/jm_1080p_allslice.264"));
m_pDec->Uninitialize();
//Uninit();
}