@@ -23,30 +23,38 @@ extern GFXCORE_FAMILY renderCoreFamily;
23
23
#ifdef TESTS_GEN8
24
24
#define BDW_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN8_CORE>::GfxFamily>();
25
25
#define BDW_TYPED_CMDTEST_BODY runCmdTestHwIfSupported<typename NEO::GfxFamilyMapper<IGFX_GEN8_CORE>::GfxFamily>();
26
+ #define BDW_SUPPORTED_TEST (cmdSetBase ) NEO::GfxFamilyMapper<IGFX_GEN8_CORE>::GfxFamily::supportsCmdSet(cmdSetBase)
26
27
#else
27
28
#define BDW_TYPED_TEST_BODY
28
29
#define BDW_TYPED_CMDTEST_BODY
30
+ #define BDW_SUPPORTED_TEST (cmdSetBase ) false
29
31
#endif
30
32
#ifdef TESTS_GEN9
31
33
#define SKL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN9_CORE>::GfxFamily>();
32
34
#define SKL_TYPED_CMDTEST_BODY runCmdTestHwIfSupported<typename NEO::GfxFamilyMapper<IGFX_GEN9_CORE>::GfxFamily>();
35
+ #define SKL_SUPPORTED_TEST (cmdSetBase ) NEO::GfxFamilyMapper<IGFX_GEN9_CORE>::GfxFamily::supportsCmdSet(cmdSetBase)
33
36
#else
34
37
#define SKL_TYPED_TEST_BODY
35
38
#define SKL_TYPED_CMDTEST_BODY
39
+ #define SKL_SUPPORTED_TEST (cmdSetBase ) false
36
40
#endif
37
41
#ifdef TESTS_GEN10
38
42
#define CNL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN10_CORE>::GfxFamily>();
39
43
#define CNL_TYPED_CMDTEST_BODY runCmdTestHwIfSupported<typename NEO::GfxFamilyMapper<IGFX_GEN10_CORE>::GfxFamily>();
44
+ #define CNL_SUPPORTED_TEST (cmdSetBase ) NEO::GfxFamilyMapper<IGFX_GEN10_CORE>::GfxFamily::supportsCmdSet(cmdSetBase)
40
45
#else
41
46
#define CNL_TYPED_TEST_BODY
42
47
#define CNL_TYPED_CMDTEST_BODY
48
+ #define CNL_SUPPORTED_TEST (cmdSetBase ) false
43
49
#endif
44
50
#ifdef TESTS_GEN11
45
51
#define ICL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN11_CORE>::GfxFamily>();
46
52
#define ICL_TYPED_CMDTEST_BODY runCmdTestHwIfSupported<typename NEO::GfxFamilyMapper<IGFX_GEN11_CORE>::GfxFamily>();
53
+ #define ICL_SUPPORTED_TEST (cmdSetBase ) NEO::GfxFamilyMapper<IGFX_GEN11_CORE>::GfxFamily::supportsCmdSet(cmdSetBase)
47
54
#else
48
55
#define ICL_TYPED_TEST_BODY
49
56
#define ICL_TYPED_CMDTEST_BODY
57
+ #define ICL_SUPPORTED_TEST (cmdSetBase ) false
50
58
#endif
51
59
52
60
#define TO_STR2 (x ) #x
@@ -195,6 +203,31 @@ extern GFXCORE_FAMILY renderCoreFamily;
195
203
#define PLATFORM_EXCLUDES_CLASS_NAME (test_suite_name, test_name ) \
196
204
PLATFORM_EXCLUDES_##test_suite_name##test_name
197
205
206
+ #define CALL_IF_SUPPORTED (cmdSetBase, expression ) \
207
+ { \
208
+ bool supported = false ; \
209
+ switch (::renderCoreFamily) { \
210
+ case IGFX_GEN8_CORE: \
211
+ supported = BDW_SUPPORTED_TEST (cmdSetBase); \
212
+ break ; \
213
+ case IGFX_GEN9_CORE: \
214
+ supported = SKL_SUPPORTED_TEST (cmdSetBase); \
215
+ break ; \
216
+ case IGFX_GEN10_CORE: \
217
+ supported = CNL_SUPPORTED_TEST (cmdSetBase); \
218
+ break ; \
219
+ case IGFX_GEN11_CORE: \
220
+ supported = ICL_SUPPORTED_TEST (cmdSetBase); \
221
+ break ; \
222
+ default : \
223
+ ASSERT_TRUE ((false && " Unknown hardware family" )); \
224
+ break ; \
225
+ } \
226
+ if (supported) { \
227
+ expression; \
228
+ } \
229
+ }
230
+
198
231
// Macros to provide template based testing.
199
232
// Test can use FamilyType in the test -- equivalent to SKLFamily
200
233
#define HWCMDTEST_TEST_ (cmdset_gen_base, test_suite_name, test_name, parent_class, parent_id ) \
@@ -265,12 +298,12 @@ extern GFXCORE_FAMILY renderCoreFamily;
265
298
} \
266
299
void SetUp () override { \
267
300
if (notExcluded ()) { \
268
- parent_class::SetUp (); \
301
+ CALL_IF_SUPPORTED (cmdset_gen_base, parent_class::SetUp ()); \
269
302
} \
270
303
} \
271
304
void TearDown () override { \
272
305
if (notExcluded ()) { \
273
- parent_class::TearDown (); \
306
+ CALL_IF_SUPPORTED (cmdset_gen_base, parent_class::TearDown ()); \
274
307
} \
275
308
} \
276
309
static ::testing::TestInfo *const test_info_ GTEST_ATTRIBUTE_UNUSED_; \
0 commit comments