57 lines · 2.1 KB · C++
RawDownload
#include <time.h> #include "gtest/gtest.h"#include "memory_align.h" using namespace WelsSVCEnc; //Tests of WelsGetCacheLineSize BeginTEST(MemoryAlignTest, GetCacheLineSize_LoopWithin16K) {  const unsigned int kuiTestBoundary16K = 16 * 1024;	unsigned int uiTargetAlign = 1;	while (uiTargetAlign < kuiTestBoundary16K) {		CMemoryAlign cTestMa(uiTargetAlign);    ASSERT_EQ(  (uiTargetAlign & 0x0F)?16:uiTargetAlign, cTestMa.WelsGetCacheLineSize() );		++ uiTargetAlign;	}} TEST(MemoryAlignTest, GetCacheLineSize_Zero) {  CMemoryAlign cTestMa(0);  ASSERT_EQ(  16, cTestMa.WelsGetCacheLineSize() );}TEST(MemoryAlignTest, GetCacheLineSize_MaxUINT) {	CMemoryAlign cTestMa(0xFFFFFFFF);	ASSERT_EQ( 16, cTestMa.WelsGetCacheLineSize() );}//Tests of WelsGetCacheLineSize End//Tests of WelsMallocAndFree BeginTEST(MemoryAlignTest, WelsMallocAndFreeOnceFunctionVerify) {  const uint32_t kuiTargetAlignSize[4] = {32, 16, 64, 8};  srand((uint32_t)time(NULL));   for (int i=0; i<4; i++) {    const uint32_t kuiTestAlignSize	= kuiTargetAlignSize[i];    const uint32_t kuiTestDataSize		= abs(rand());     CMemoryAlign cTestMa(kuiTestAlignSize);    const uint32_t uiSize = kuiTestDataSize;    const char strUnitTestTag[100] = "pUnitTestData";    const uint32_t kuiUsedCacheLineSize	= ((kuiTestAlignSize == 0) || (kuiTestAlignSize & 0x0F)) ? (16) : (kuiTestAlignSize);    const uint32_t kuiExtraAlignSize	= kuiUsedCacheLineSize-1;    const uint32_t kuiExpectedSize	= sizeof( void ** ) + sizeof( int32_t ) + kuiExtraAlignSize + uiSize;    uint8_t *pUnitTestData = static_cast<uint8_t *>(cTestMa.WelsMalloc(uiSize, strUnitTestTag));    if ( pUnitTestData != NULL ) {      ASSERT_TRUE( (((uintptr_t)(pUnitTestData)) & kuiExtraAlignSize) == 0 );      EXPECT_EQ( kuiExpectedSize, cTestMa.WelsGetMemoryUsage() );      cTestMa.WelsFree( pUnitTestData, strUnitTestTag );      EXPECT_EQ( 0, cTestMa.WelsGetMemoryUsage() );    }    else {      EXPECT_EQ( NULL, pUnitTestData );      EXPECT_EQ( 0, cTestMa.WelsGetMemoryUsage() );      cTestMa.WelsFree( pUnitTestData, strUnitTestTag );      EXPECT_EQ( 0, cTestMa.WelsGetMemoryUsage() );    }  }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t