Don't reset the random number generator within the unit tests
This makes sure we don't accidentally return the same sequence of random numbers multiple times within one test (which would be very non-random). Every time srand(time()) is called, the pseudo random number generator is initialized to the same value (as long as time() returned the same value). By initializing the random number generator once and for all before starting to run the unit tests, we are sure we don't need to reinitialize it within all the tests and all the functions that use random numbers. This fixes occasional errors in MotionEstimateTest. MotionEstimateTest was designed to allow the test to occasionally not succeed - if it didn't succeed, it tried again, up to 100 times. However, since the YUVPixelDataGenerator function reset the random seed to time(), every attempt actually ran with the same random data (as long as all 100 attempts ran within 1 second) - thus if one attempt in MotionEstimateTest failed, all 100 of them would fail. If the utility functions don't touch the random seed, this is not an issue.
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
#include<gtest/gtest.h>
|
||||
#include<math.h>
|
||||
#include<stdlib.h>
|
||||
#include<time.h>
|
||||
|
||||
#include "cpu_core.h"
|
||||
#include "cpu.h"
|
||||
@@ -24,7 +22,6 @@ TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Sad_ssse3) {
|
||||
uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
|
||||
uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
|
||||
uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (iLineSizeDec << 5); i++)
|
||||
pDec[i] = rand() % 256;
|
||||
for (int i = 0; i < (iLineSizeEnc << 5); i++)
|
||||
@@ -56,7 +53,6 @@ TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Satd_sse41) {
|
||||
uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
|
||||
uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
|
||||
uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (iLineSizeDec << 5); i++)
|
||||
pDec[i] = rand() % 256;
|
||||
for (int i = 0; i < (iLineSizeEnc << 5); i++)
|
||||
@@ -88,7 +84,6 @@ TEST (IntraSadSatdFuncTest, WelsSampleSatdThree4x4_sse2) {
|
||||
uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
|
||||
uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
|
||||
WelsInitFillingPredFuncs (WELS_CPU_SSE2);
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (iLineSizeDec << 5); i++)
|
||||
pDec[i] = rand() % 256;
|
||||
for (int i = 0; i < (iLineSizeEnc << 5); i++)
|
||||
@@ -121,7 +116,6 @@ TEST (IntraSadSatdFuncTest, WelsIntraChroma8x8Combined3Satd_sse41) {
|
||||
uint8_t* pDecCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDecCr");
|
||||
uint8_t* pEncCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEncCr");
|
||||
uint8_t* pDstChma = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDstChma");
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (iLineSizeDec << 5); i++) {
|
||||
pDecCb[i] = rand() % 256;
|
||||
pDecCr[i] = rand() % 256;
|
||||
@@ -165,7 +159,6 @@ class SadSatdCFuncTest : public testing::Test {
|
||||
virtual void SetUp() {
|
||||
pMemAlign = new CMemoryAlign (0);
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
m_iStrideA = rand() % 256 + PIXEL_STRIDE;
|
||||
m_iStrideB = rand() % 256 + PIXEL_STRIDE;
|
||||
m_pPixSrcA = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideA << 5, "Sad_m_pPixSrcA");
|
||||
@@ -192,7 +185,6 @@ class SadSatdCFuncTest : public testing::Test {
|
||||
};
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSad4x4_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 2); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 2); i++)
|
||||
@@ -211,7 +203,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad4x4_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSad8x8_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -231,7 +222,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad8x8_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSad16x8_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -251,7 +241,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad16x8_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSad8x16_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -271,7 +260,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad8x16_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSad16x16_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -291,7 +279,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad16x16_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSatd4x4_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 2); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 2); i++)
|
||||
@@ -355,7 +342,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSatd4x4_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x16_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -379,7 +365,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x16_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x8_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -404,7 +389,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x8_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x16_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -429,7 +413,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x16_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x8_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -453,7 +436,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x8_c) {
|
||||
}
|
||||
|
||||
TEST_F (SadSatdCFuncTest, WelsSampleSadFour4x4_c) {
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -512,7 +494,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad4x4_mmx) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_MMXEXT))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 2); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 2); i++)
|
||||
@@ -527,7 +508,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -540,7 +520,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -553,7 +532,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -566,7 +544,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -579,7 +556,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 2); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 2); i++)
|
||||
@@ -592,7 +568,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -605,7 +580,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -618,7 +592,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -631,7 +604,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -644,7 +616,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 2); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 2); i++)
|
||||
@@ -657,7 +628,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -670,7 +640,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -683,7 +652,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
@@ -696,7 +664,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) {
|
||||
TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse41) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
|
||||
return;
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -710,7 +677,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -739,7 +705,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x8_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -768,7 +733,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x16_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 5); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 5); i++)
|
||||
@@ -797,7 +761,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x8_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 4); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 4); i++)
|
||||
@@ -827,7 +790,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour4x4_sse2) {
|
||||
if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
|
||||
return;
|
||||
|
||||
srand ((uint32_t)time (NULL));
|
||||
for (int i = 0; i < (m_iStrideA << 3); i++)
|
||||
m_pPixSrcA[i] = rand() % 256;
|
||||
for (int i = 0; i < (m_iStrideB << 3); i++)
|
||||
|
||||
Reference in New Issue
Block a user