56 lines · 2.2 KB · C++
RawDownload
#include "gtest/gtest.h"#include "memory_align.h" using namespace WelsEnc; //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);  const uint32_t kuiSixteen = 16;  ASSERT_EQ (kuiSixteen, cTestMa.WelsGetCacheLineSize());}TEST (MemoryAlignTest, GetCacheLineSize_MaxUINT) {  CMemoryAlign cTestMa (0xFFFFFFFF);  const uint32_t kuiSixteen = 16;  ASSERT_EQ (kuiSixteen, cTestMa.WelsGetCacheLineSize());}//Tests of WelsGetCacheLineSize End//Tests of WelsMallocAndFree BeginTEST (MemoryAlignTest, WelsMallocAndFreeOnceFunctionVerify) {  const uint32_t kuiTargetAlignSize[4] = {32, 16, 64, 8};  const uint32_t kuiZero = 0;  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 (kuiZero, cTestMa.WelsGetMemoryUsage());    } else {      EXPECT_EQ (NULL, pUnitTestData);      EXPECT_EQ (kuiZero, cTestMa.WelsGetMemoryUsage());      cTestMa.WelsFree (pUnitTestData, strUnitTestTag);      EXPECT_EQ (kuiZero, 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