History

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.

Martin Storsjö committed 12 years ago

Commit 4f594de1 parent 806e59f16 files · +12 −114Browse files

Showing the changes to test/encoder/EncUT_Sample.cpp (1 of 16 files). Show all

Unified · Split

test/encoder/EncUT_Sample.cpp+0−38
@@ -1,7 +1,5 @@
11 #include<gtest/gtest.h>
22 #include<math.h>
3−#include<stdlib.h>
4−#include<time.h>
53
64 #include "cpu_core.h"
75 #include "cpu.h"
@@ -24,7 +22,6 @@ TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Sad_ssse3) { · 16 unmodified lines
2422 uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
2523 uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
2624 uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
27− srand ((uint32_t)time (NULL));
2825 for (int i = 0; i < (iLineSizeDec << 5); i++)
2926 pDec[i] = rand() % 256;
3027 for (int i = 0; i < (iLineSizeEnc << 5); i++)
@@ -56,7 +53,6 @@ TEST (IntraSadSatdFuncTest, WelsIntra16x16Combined3Satd_sse41) { · 25 unmodified lines
5653 uint8_t* pDec = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDec");
5754 uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
5855 uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
59− srand ((uint32_t)time (NULL));
6056 for (int i = 0; i < (iLineSizeDec << 5); i++)
6157 pDec[i] = rand() % 256;
6258 for (int i = 0; i < (iLineSizeEnc << 5); i++)
@@ -88,7 +84,6 @@ TEST (IntraSadSatdFuncTest, WelsSampleSatdThree4x4_sse2) { · 25 unmodified lines
8884 uint8_t* pEnc = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEnc");
8985 uint8_t* pDst = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDst");
9086 WelsInitFillingPredFuncs (WELS_CPU_SSE2);
91− srand ((uint32_t)time (NULL));
9287 for (int i = 0; i < (iLineSizeDec << 5); i++)
9388 pDec[i] = rand() % 256;
9489 for (int i = 0; i < (iLineSizeEnc << 5); i++)
@@ -121,7 +116,6 @@ TEST (IntraSadSatdFuncTest, WelsIntraChroma8x8Combined3Satd_sse41) { · 26 unmodified lines
121116 uint8_t* pDecCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeDec << 5, "pDecCr");
122117 uint8_t* pEncCr = (uint8_t*)cMemoryAlign.WelsMalloc (iLineSizeEnc << 5, "pEncCr");
123118 uint8_t* pDstChma = (uint8_t*)cMemoryAlign.WelsMalloc (512, "pDstChma");
124− srand ((uint32_t)time (NULL));
125119 for (int i = 0; i < (iLineSizeDec << 5); i++) {
126120 pDecCb[i] = rand() % 256;
127121 pDecCr[i] = rand() % 256;
@@ -165,7 +159,6 @@ class SadSatdCFuncTest : public testing::Test { · 37 unmodified lines
165159 virtual void SetUp() {
166160 pMemAlign = new CMemoryAlign (0);
167161
168− srand ((uint32_t)time (NULL));
169162 m_iStrideA = rand() % 256 + PIXEL_STRIDE;
170163 m_iStrideB = rand() % 256 + PIXEL_STRIDE;
171164 m_pPixSrcA = (uint8_t*)pMemAlign->WelsMalloc (m_iStrideA << 5, "Sad_m_pPixSrcA");
@@ -192,7 +185,6 @@ class SadSatdCFuncTest : public testing::Test { · 20 unmodified lines
192185 };
193186
194187 TEST_F (SadSatdCFuncTest, WelsSampleSad4x4_c) {
195− srand ((uint32_t)time (NULL));
196188 for (int i = 0; i < (m_iStrideA << 2); i++)
197189 m_pPixSrcA[i] = rand() % 256;
198190 for (int i = 0; i < (m_iStrideB << 2); i++)
@@ -211,7 +203,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad4x4_c) { · 12 unmodified lines
211203 }
212204
213205 TEST_F (SadSatdCFuncTest, WelsSampleSad8x8_c) {
214− srand ((uint32_t)time (NULL));
215206 for (int i = 0; i < (m_iStrideA << 3); i++)
216207 m_pPixSrcA[i] = rand() % 256;
217208 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -231,7 +222,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad8x8_c) { · 13 unmodified lines
231222 }
232223
233224 TEST_F (SadSatdCFuncTest, WelsSampleSad16x8_c) {
234− srand ((uint32_t)time (NULL));
235225 for (int i = 0; i < (m_iStrideA << 3); i++)
236226 m_pPixSrcA[i] = rand() % 256;
237227 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -251,7 +241,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad16x8_c) { · 13 unmodified lines
251241 }
252242
253243 TEST_F (SadSatdCFuncTest, WelsSampleSad8x16_c) {
254− srand ((uint32_t)time (NULL));
255244 for (int i = 0; i < (m_iStrideA << 4); i++)
256245 m_pPixSrcA[i] = rand() % 256;
257246 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -271,7 +260,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad8x16_c) { · 13 unmodified lines
271260 }
272261
273262 TEST_F (SadSatdCFuncTest, WelsSampleSad16x16_c) {
274− srand ((uint32_t)time (NULL));
275263 for (int i = 0; i < (m_iStrideA << 4); i++)
276264 m_pPixSrcA[i] = rand() % 256;
277265 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -291,7 +279,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSad16x16_c) { · 13 unmodified lines
291279 }
292280
293281 TEST_F (SadSatdCFuncTest, WelsSampleSatd4x4_c) {
294− srand ((uint32_t)time (NULL));
295282 for (int i = 0; i < (m_iStrideA << 2); i++)
296283 m_pPixSrcA[i] = rand() % 256;
297284 for (int i = 0; i < (m_iStrideB << 2); i++)
@@ -355,7 +342,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSatd4x4_c) { · 57 unmodified lines
355342 }
356343
357344 TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x16_c) {
358− srand ((uint32_t)time (NULL));
359345 for (int i = 0; i < (m_iStrideA << 5); i++)
360346 m_pPixSrcA[i] = rand() % 256;
361347 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -379,7 +365,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x16_c) { · 17 unmodified lines
379365 }
380366
381367 TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x8_c) {
382− srand ((uint32_t)time (NULL));
383368 for (int i = 0; i < (m_iStrideA << 5); i++)
384369 m_pPixSrcA[i] = rand() % 256;
385370 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -404,7 +389,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour16x8_c) { · 18 unmodified lines
404389 }
405390
406391 TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x16_c) {
407− srand ((uint32_t)time (NULL));
408392 for (int i = 0; i < (m_iStrideA << 5); i++)
409393 m_pPixSrcA[i] = rand() % 256;
410394 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -429,7 +413,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x16_c) { · 18 unmodified lines
429413 }
430414
431415 TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x8_c) {
432− srand ((uint32_t)time (NULL));
433416 for (int i = 0; i < (m_iStrideA << 4); i++)
434417 m_pPixSrcA[i] = rand() % 256;
435418 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -453,7 +436,6 @@ TEST_F (SadSatdCFuncTest, WelsSampleSadFour8x8_c) { · 17 unmodified lines
453436 }
454437
455438 TEST_F (SadSatdCFuncTest, WelsSampleSadFour4x4_c) {
456− srand ((uint32_t)time (NULL));
457439 for (int i = 0; i < (m_iStrideA << 3); i++)
458440 m_pPixSrcA[i] = rand() % 256;
459441 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -512,7 +494,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad4x4_mmx) { · 52 unmodified lines
512494 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_MMXEXT))
513495 return;
514496
515− srand ((uint32_t)time (NULL));
516497 for (int i = 0; i < (m_iStrideA << 2); i++)
517498 m_pPixSrcA[i] = rand() % 256;
518499 for (int i = 0; i < (m_iStrideB << 2); i++)
@@ -527,7 +508,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) { · 8 unmodified lines
527508 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
528509 return;
529510
530− srand ((uint32_t)time (NULL));
531511 for (int i = 0; i < (m_iStrideA << 3); i++)
532512 m_pPixSrcA[i] = rand() % 256;
533513 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -540,7 +520,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x8_sse21) { · 6 unmodified lines
540520 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) {
541521 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
542522 return;
543− srand ((uint32_t)time (NULL));
544523 for (int i = 0; i < (m_iStrideA << 4); i++)
545524 m_pPixSrcA[i] = rand() % 256;
546525 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -553,7 +532,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad8x16_sse2) { · 6 unmodified lines
553532 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) {
554533 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
555534 return;
556− srand ((uint32_t)time (NULL));
557535 for (int i = 0; i < (m_iStrideA << 3); i++)
558536 m_pPixSrcA[i] = rand() % 256;
559537 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -566,7 +544,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x8_sse2) { · 6 unmodified lines
566544 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) {
567545 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
568546 return;
569− srand ((uint32_t)time (NULL));
570547 for (int i = 0; i < (m_iStrideA << 4); i++)
571548 m_pPixSrcA[i] = rand() % 256;
572549 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -579,7 +556,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSad16x16_sse2) { · 6 unmodified lines
579556 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) {
580557 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
581558 return;
582− srand ((uint32_t)time (NULL));
583559 for (int i = 0; i < (m_iStrideA << 2); i++)
584560 m_pPixSrcA[i] = rand() % 256;
585561 for (int i = 0; i < (m_iStrideB << 2); i++)
@@ -592,7 +568,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse2) { · 6 unmodified lines
592568 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) {
593569 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
594570 return;
595− srand ((uint32_t)time (NULL));
596571 for (int i = 0; i < (m_iStrideA << 3); i++)
597572 m_pPixSrcA[i] = rand() % 256;
598573 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -605,7 +580,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse2) { · 6 unmodified lines
605580 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) {
606581 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
607582 return;
608− srand ((uint32_t)time (NULL));
609583 for (int i = 0; i < (m_iStrideA << 4); i++)
610584 m_pPixSrcA[i] = rand() % 256;
611585 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -618,7 +592,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse2) { · 6 unmodified lines
618592 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) {
619593 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
620594 return;
621− srand ((uint32_t)time (NULL));
622595 for (int i = 0; i < (m_iStrideA << 3); i++)
623596 m_pPixSrcA[i] = rand() % 256;
624597 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -631,7 +604,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse2) { · 6 unmodified lines
631604 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) {
632605 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
633606 return;
634− srand ((uint32_t)time (NULL));
635607 for (int i = 0; i < (m_iStrideA << 4); i++)
636608 m_pPixSrcA[i] = rand() % 256;
637609 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -644,7 +616,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse2) { · 6 unmodified lines
644616 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) {
645617 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
646618 return;
647− srand ((uint32_t)time (NULL));
648619 for (int i = 0; i < (m_iStrideA << 2); i++)
649620 m_pPixSrcA[i] = rand() % 256;
650621 for (int i = 0; i < (m_iStrideB << 2); i++)
@@ -657,7 +628,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd4x4_sse41) { · 6 unmodified lines
657628 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) {
658629 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
659630 return;
660− srand ((uint32_t)time (NULL));
661631 for (int i = 0; i < (m_iStrideA << 3); i++)
662632 m_pPixSrcA[i] = rand() % 256;
663633 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -670,7 +640,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x8_sse41) { · 6 unmodified lines
670640 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) {
671641 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
672642 return;
673− srand ((uint32_t)time (NULL));
674643 for (int i = 0; i < (m_iStrideA << 4); i++)
675644 m_pPixSrcA[i] = rand() % 256;
676645 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -683,7 +652,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd8x16_sse41) { · 6 unmodified lines
683652 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) {
684653 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
685654 return;
686− srand ((uint32_t)time (NULL));
687655 for (int i = 0; i < (m_iStrideA << 3); i++)
688656 m_pPixSrcA[i] = rand() % 256;
689657 for (int i = 0; i < (m_iStrideB << 3); i++)
@@ -696,7 +664,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x8_sse41) { · 6 unmodified lines
696664 TEST_F (SadSatdAssemblyFuncTest, WelsSampleSatd16x16_sse41) {
697665 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE41))
698666 return;
699− srand ((uint32_t)time (NULL));
700667 for (int i = 0; i < (m_iStrideA << 4); i++)
701668 m_pPixSrcA[i] = rand() % 256;
702669 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -710,7 +677,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x16_sse2) { · 7 unmodified lines
710677 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
711678 return;
712679
713− srand ((uint32_t)time (NULL));
714680 for (int i = 0; i < (m_iStrideA << 5); i++)
715681 m_pPixSrcA[i] = rand() % 256;
716682 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -739,7 +705,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour16x8_sse2) { · 22 unmodified lines
739705 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
740706 return;
741707
742− srand ((uint32_t)time (NULL));
743708 for (int i = 0; i < (m_iStrideA << 5); i++)
744709 m_pPixSrcA[i] = rand() % 256;
745710 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -768,7 +733,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x16_sse2) { · 22 unmodified lines
768733 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
769734 return;
770735
771− srand ((uint32_t)time (NULL));
772736 for (int i = 0; i < (m_iStrideA << 5); i++)
773737 m_pPixSrcA[i] = rand() % 256;
774738 for (int i = 0; i < (m_iStrideB << 5); i++)
@@ -797,7 +761,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour8x8_sse2) { · 22 unmodified lines
797761 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
798762 return;
799763
800− srand ((uint32_t)time (NULL));
801764 for (int i = 0; i < (m_iStrideA << 4); i++)
802765 m_pPixSrcA[i] = rand() % 256;
803766 for (int i = 0; i < (m_iStrideB << 4); i++)
@@ -827,7 +790,6 @@ TEST_F (SadSatdAssemblyFuncTest, WelsSampleSadFour4x4_sse2) { · 23 unmodified lines
827790 if (0 == (m_uiCpuFeatureFlag & WELS_CPU_SSE2))
828791 return;
829792
830− srand ((uint32_t)time (NULL));
831793 for (int i = 0; i < (m_iStrideA << 3); i++)
832794 m_pPixSrcA[i] = rand() % 256;
833795 for (int i = 0; i < (m_iStrideB << 3); i++)

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