shithub: openh264

Download patch

ref: 006f5e5031b75bce619e0846192c375db78b08ff
parent: d188ef65e1a23eb29ee8d1dcaeeaf823b41723a3
author: Huade Shi (huashi) <huashi@cisco.com>
date: Wed May 10 13:06:16 EDT 2017

UT crash issue: assert instead expect to exit ut when memory allocate failed

--- a/test/encoder/EncUT_SliceBufferReallocate.cpp
+++ b/test/encoder/EncUT_SliceBufferReallocate.cpp
@@ -169,7 +169,7 @@
 
   //param validation
   int32_t iRet = m_pEncoder->InitializeExt ((SEncParamExt*)m_EncContext.pSvcParam);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 }
 
 void CSliceBufferReallocatTest::InitParamForSizeLimitSlcModeCase (int32_t iLayerIdx) {
@@ -184,18 +184,18 @@
     UnInitLayerSliceBuffer (iLayerIdx);
     pSliceArgument->uiSliceMode = SM_SIZELIMITED_SLICE;
     iRet = InitParamForSizeLimitSlcMode (&m_EncContext, iLayerIdx);
-    EXPECT_TRUE (ENC_RETURN_SUCCESS == iRet);
-    EXPECT_TRUE (NULL != m_EncContext.ppDqLayerList[iLayerIdx]);
+    ASSERT_TRUE (ENC_RETURN_SUCCESS == iRet);
+    ASSERT_TRUE (NULL != m_EncContext.ppDqLayerList[iLayerIdx]);
   }
 
   //param validation
   iRet = m_pEncoder->InitializeExt ((SEncParamExt*)m_EncContext.pSvcParam);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 }
 
 void CSliceBufferReallocatTest::UnInitParamForTestCase (int32_t iLayerIdx) {
   int32_t iRet = m_pEncoder->Uninitialize();
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   UnInitFrameBsBuffer();
   UnInitLayerSliceBuffer (iLayerIdx);
@@ -224,16 +224,16 @@
   pCtx->pSvcParam->eSpsPpsIdStrategy = (EParameterSetStrategy) (iParamStraIdx == 4 ? 0x06 : iParamStraIdx);
 
   pCtx->pFuncList = (SWelsFuncPtrList*)pCtx->pMemAlign->WelsMallocz (sizeof (SWelsFuncPtrList), "SWelsFuncPtrList");
-  EXPECT_TRUE (NULL != pCtx->pFuncList);
+  ASSERT_TRUE (NULL != pCtx->pFuncList);
 
   pCtx->pFuncList->pParametersetStrategy = IWelsParametersetStrategy::CreateParametersetStrategy (
         pCtx->pSvcParam->eSpsPpsIdStrategy,
         pCtx->pSvcParam->bSimulcastAVC, pCtx->pSvcParam->iSpatialLayerNum);
-  EXPECT_TRUE (NULL != pCtx->pFuncList->pParametersetStrategy);
+  ASSERT_TRUE (NULL != pCtx->pFuncList->pParametersetStrategy);
 
   pCtx->ppDqLayerList = (SDqLayer**)pCtx->pMemAlign->WelsMallocz (pCtx->pSvcParam->iSpatialLayerNum * sizeof (SDqLayer*),
                         "ppDqLayerList");
-  EXPECT_TRUE (NULL != pCtx->ppDqLayerList);
+  ASSERT_TRUE (NULL != pCtx->ppDqLayerList);
 }
 
 void CSliceBufferReallocatTest::UnInitParam() {
@@ -269,23 +269,23 @@
   int32_t iCountNals = 0;
 
   int32_t iRet = AcquireLayersNals (&pCtx, pCtx->pSvcParam, &pCtx->pSvcParam->iSpatialLayerNum, &iCountNals);
-  EXPECT_TRUE (0 == iRet);
+  ASSERT_TRUE (0 == iRet);
 
   // Output
   pCtx->pOut = (SWelsEncoderOutput*)pCtx->pMemAlign->WelsMallocz (sizeof (SWelsEncoderOutput), "SWelsEncoderOutput");
-  EXPECT_TRUE (NULL != pCtx->pOut);
+  ASSERT_TRUE (NULL != pCtx->pOut);
   pCtx->pOut->pBsBuffer = (uint8_t*)pCtx->pMemAlign->WelsMallocz (iCountBsLen, "pOut->pBsBuffer");
-  EXPECT_TRUE (NULL != pCtx->pOut->pBsBuffer);
+  ASSERT_TRUE (NULL != pCtx->pOut->pBsBuffer);
   pCtx->pOut->uiSize = iCountBsLen;
   pCtx->pOut->sNalList = (SWelsNalRaw*)pCtx->pMemAlign->WelsMallocz (iCountNals * sizeof (SWelsNalRaw), "pOut->sNalList");
-  EXPECT_TRUE (NULL != pCtx->pOut->sNalList);
+  ASSERT_TRUE (NULL != pCtx->pOut->sNalList);
   pCtx->pOut->pNalLen = (int32_t*)pCtx->pMemAlign->WelsMallocz (iCountNals * sizeof (int32_t), "pOut->pNalLen");
-  EXPECT_TRUE (NULL != pCtx->pOut->pNalLen);
+  ASSERT_TRUE (NULL != pCtx->pOut->pNalLen);
   pCtx->pOut->iCountNals = iCountNals;
   pCtx->pOut->iNalIndex = 0;
   pCtx->pOut->iLayerBsIndex = 0;
   pCtx->pFrameBs = (uint8_t*)pCtx->pMemAlign->WelsMalloc (iCountBsLen, "pFrameBs");
-  EXPECT_TRUE (NULL != pCtx->pOut);
+  ASSERT_TRUE (NULL != pCtx->pOut);
   pCtx->iFrameBsSize = iCountBsLen;
   pCtx->iPosBsBuffer = 0;
 }
@@ -357,8 +357,8 @@
     iRet = AllocateLayerBuffer (pCtx, iLayerIdx);
   }
 
-  EXPECT_TRUE (ENC_RETURN_SUCCESS == iRet);
-  EXPECT_TRUE (NULL != pCtx->ppDqLayerList[iLayerIdx]);
+  ASSERT_TRUE (ENC_RETURN_SUCCESS == iRet);
+  ASSERT_TRUE (NULL != pCtx->ppDqLayerList[iLayerIdx]);
 
   pCtx->uiDependencyId = iLayerIdx;
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
@@ -376,8 +376,8 @@
   if (m_EncContext.pCurDqLayer->bThreadSlcBufferFlag) {
     int32_t iCodedSlcNumInThrd = m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].iCodedSliceNum;
 
-    EXPECT_TRUE (NULL != m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].pSliceBuffer);
-    EXPECT_TRUE (NULL != &m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].pSliceBuffer[iCodedSlcNumInThrd]);
+    ASSERT_TRUE (NULL != m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].pSliceBuffer);
+    ASSERT_TRUE (NULL != &m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].pSliceBuffer[iCodedSlcNumInThrd]);
 
     m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].pSliceBuffer[iCodedSlcNumInThrd].iSliceIdx = kiSlcIdx;
     m_EncContext.pCurDqLayer->sSliceBufferInfo[kiThreadIdx].iCodedSliceNum ++;
@@ -393,7 +393,7 @@
 
   //slice within same partition will encoded by same thread in current design
   int32_t iPartitionThrdIdx = RandAvailableThread (&m_EncContext, kiSlcNumInPart);
-  EXPECT_TRUE (-1 != iPartitionThrdIdx);
+  ASSERT_TRUE (-1 != iPartitionThrdIdx);
 
   for (int32_t iSlcIdx = 0; iSlcIdx < kiSlcNumInPart; iSlcIdx++) {
     iSlcIdxInPart = kiPartIdx + kiPartNum * iSlcIdx;
@@ -428,7 +428,7 @@
   } else {
     for (int32_t iSlcIdx = 0; iSlcIdx < iSimulateSliceNum; iSlcIdx ++) {
       int32_t iSlcThrdIdx = RandAvailableThread (&m_EncContext, 1);
-      EXPECT_TRUE (-1 != iSlcThrdIdx);
+      ASSERT_TRUE (-1 != iSlcThrdIdx);
 
       SimulateEncodedOneSlice (iSlcIdx, iSlcThrdIdx);
       m_EncContext.pCurDqLayer->sSliceEncCtx.iSliceNumInFrame++;
@@ -445,7 +445,7 @@
 
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
   iRet = InitAllSlicesInThread (pCtx);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   //case: reallocate during encoding one partition
   //      include cases which part num less than thread num
@@ -475,7 +475,7 @@
 
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
   iRet = InitAllSlicesInThread (pCtx);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   //case: all partitions encoded by one thread
   //example: 3 threads 3 partions
@@ -511,7 +511,7 @@
   InitParamForSizeLimitSlcModeCase (iLayerIdx);
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
   iRet = InitAllSlicesInThread (pCtx);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   //before extend, simulate reallocate slice buffer in one thread
   int32_t iReallocateThrdIdx = rand() % pCtx->iActiveThreadsNum;
@@ -520,8 +520,8 @@
 
   iRet = ReallocateSliceList (pCtx, &pCtx->pSvcParam->sSpatialLayers[iLayerIdx].sSliceArgument,
                               pSlcListInThrd, iSlcBuffNumInThrd, iSlcBuffNumInThrd * 2);
-  EXPECT_TRUE (cmResultSuccess == iRet);
-  EXPECT_TRUE (NULL != pSlcListInThrd);
+  ASSERT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (NULL != pSlcListInThrd);
   pCtx->pCurDqLayer->sSliceBufferInfo[iReallocateThrdIdx].pSliceBuffer = pSlcListInThrd;
   pCtx->pCurDqLayer->sSliceBufferInfo[iReallocateThrdIdx].iMaxSliceNum   = iSlcBuffNumInThrd * 2;
 
@@ -575,7 +575,7 @@
 
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
   int32_t iRet = InitAllSlicesInThread (pCtx);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   SimulateSliceInOneLayer();
 
@@ -605,7 +605,7 @@
   InitParamForSizeLimitSlcModeCase (iLayerIdx);
   pCtx->pCurDqLayer = pCtx->ppDqLayerList[iLayerIdx];
   iRet = InitAllSlicesInThread (pCtx);
-  EXPECT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (cmResultSuccess == iRet);
 
   SimulateSliceInOneLayer();
 
@@ -623,8 +623,8 @@
 
   iRet = ReallocateSliceList (pCtx, &pCtx->pSvcParam->sSpatialLayers[iLayerIdx].sSliceArgument,
                               pSlcListInThrd, iSlcBuffNumInThrd, iSlcBuffNumInThrd * 2);
-  EXPECT_TRUE (cmResultSuccess == iRet);
-  EXPECT_TRUE (NULL != pSlcListInThrd);
+  ASSERT_TRUE (cmResultSuccess == iRet);
+  ASSERT_TRUE (NULL != pSlcListInThrd);
   pCtx->pCurDqLayer->sSliceBufferInfo[iReallocateThrdIdx].pSliceBuffer = pSlcListInThrd;
   pCtx->pCurDqLayer->sSliceBufferInfo[iReallocateThrdIdx].iMaxSliceNum = iSlcBuffNumInThrd * 2;
 
@@ -636,7 +636,7 @@
     } else {
       iSlcIdxInThrd = pCtx->pCurDqLayer->sSliceEncCtx.iSliceNumInFrame;
     }
-    EXPECT_TRUE (NULL != &pSlcListInThrd[iSlcIdx]);
+    ASSERT_TRUE (NULL != &pSlcListInThrd[iSlcIdx]);
     pSlcListInThrd[iSlcIdx].iSliceIdx = iSlcIdxInThrd;
     pSlcListInThrd[iSlcIdx].sSliceBs.iNalIndex = rand() % 2 + 1;
     pSlcListInThrd[iSlcIdx].sSliceBs.uiBsPos = rand() % pSlcListInThrd[iSlcIdx].sSliceBs.uiSize + 1;
--- a/test/encoder/EncUT_SliceBufferReallocate.h
+++ b/test/encoder/EncUT_SliceBufferReallocate.h
@@ -16,16 +16,16 @@
     m_pEncoder   = NULL;
     int32_t iRet = WelsCreateSVCEncoder (&m_pEncoder);
     ASSERT_EQ (0, iRet);
-    EXPECT_TRUE (m_pEncoder != NULL);
+    ASSERT_TRUE (m_pEncoder != NULL);
 
     int32_t iCacheLineSize = 16;
     m_EncContext.pMemAlign = new CMemoryAlign (iCacheLineSize);
-    EXPECT_TRUE (NULL != m_EncContext.pMemAlign);
+    ASSERT_TRUE (NULL != m_EncContext.pMemAlign);
 
     SWelsSvcCodingParam* pCodingParam = (SWelsSvcCodingParam*)m_EncContext.pMemAlign->WelsMalloc (sizeof (
                                           SWelsSvcCodingParam),
                                         "SWelsSvcCodingParam");
-    EXPECT_TRUE (NULL != pCodingParam);
+    ASSERT_TRUE (NULL != pCodingParam);
     m_EncContext.pSvcParam = pCodingParam;
 
     iRet = m_pEncoder->GetDefaultParams (m_EncContext.pSvcParam);