History

Add checks for cpu features in tests

This allows running the tests on devices that don't have all the SIMD instruction sets.

Martin Storsjö committed 11 years ago

Commit acafbb41 parent 7f967f63 files · +97 −73Browse files

Showing the changes to test/decoder/DecUT_IdctResAddPred.cpp (1 of 3 files). Show all

Unified · Split

test/decoder/DecUT_IdctResAddPred.cpp+17−10
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #include "macros.h"
33 #include "decode_mb_aux.h"
44 #include "deblocking.h"
5+#include "cpu.h"
56 using namespace WelsDec;
67 void IdctResAddPred_ref (uint8_t* pPred, const int32_t kiStride, int16_t* pRs) {
78 int16_t iSrc[16];
@@ -48,7 +49,7 @@ void SetNonZeroCount_ref (int8_t* pNonZeroCount) { · 40 unmodified lines
4849 }
4950 }
5051
51−#define GENERATE_IDCTRESADDPRED(pred) \
52+#define GENERATE_IDCTRESADDPRED(pred, flag) \
5253 TEST(DecoderDecodeMbAux, pred) {\
5354 const int32_t kiStride = 32;\
5455 const int iBits = 12;\
@@ -59,6 +60,9 @@ TEST(DecoderDecodeMbAux, pred) {\ · 4 unmodified lines
5960 int16_t iRefRS[16];\
6061 uint8_t uiRefPred[16*kiStride];\
6162 int32_t iRunTimes = 1000;\
63+ uint32_t uiCPUFlags = WelsCPUFeatureDetect(NULL); \
64+ if ((uiCPUFlags & flag) == 0 && flag != 0) \
65+ return; \
6266 while(iRunTimes--) {\
6367 for(int i = 0; i < 4; i++)\
6468 for(int j = 0; j < 4; j++)\
@@ -80,22 +84,25 @@ TEST(DecoderDecodeMbAux, pred) {\ · 15 unmodified lines
8084 }\
8185 }
8286
83−GENERATE_IDCTRESADDPRED (IdctResAddPred_c)
87+GENERATE_IDCTRESADDPRED (IdctResAddPred_c, 0)
8488 #if defined(X86_ASM)
85−GENERATE_IDCTRESADDPRED (IdctResAddPred_mmx)
89+GENERATE_IDCTRESADDPRED (IdctResAddPred_mmx, WELS_CPU_MMXEXT)
8690 #endif
8791
8892 #if defined(HAVE_NEON)
89−GENERATE_IDCTRESADDPRED (IdctResAddPred_neon)
93+GENERATE_IDCTRESADDPRED (IdctResAddPred_neon, WELS_CPU_NEON)
9094 #endif
9195
9296 #if defined(HAVE_NEON_AARCH64)
93−GENERATE_IDCTRESADDPRED (IdctResAddPred_AArch64_neon)
97+GENERATE_IDCTRESADDPRED (IdctResAddPred_AArch64_neon, WELS_CPU_NEON)
9498 #endif
9599
96−#define GENERATE_SETNONZEROCOUNT(method) \
100+#define GENERATE_SETNONZEROCOUNT(method, flag) \
97101 TEST(DecoderDecodeMbAux, method) \
98102 {\
103+ uint32_t uiCPUFlags = WelsCPUFeatureDetect(NULL); \
104+ if ((uiCPUFlags & flag) == 0 && flag != 0) \
105+ return; \
99106 int8_t iNonZeroCount[2][24];\
100107 for(int32_t i = 0; i < 24; i++) {\
101108 iNonZeroCount[0][i] = iNonZeroCount[1][i] = (rand() % 25);\
@@ -123,16 +130,16 @@ TEST(DecoderDecodeMbAux, method) \ · 21 unmodified lines
123130 }\
124131 }
125132
126−GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_c)
133+GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_c, 0)
127134
128135 #if defined(X86_ASM)
129−GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_sse2)
136+GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_sse2, WELS_CPU_SSE2)
130137 #endif
131138
132139 #if defined(HAVE_NEON)
133−GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_neon)
140+GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_neon, WELS_CPU_NEON)
134141 #endif
135142
136143 #if defined(HAVE_NEON_AARCH64)
137−GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_AArch64_neon)
144+GENERATE_SETNONZEROCOUNT (WelsNonZeroCount_AArch64_neon, WELS_CPU_NEON)
138145 #endif

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