@@ -23,30 +23,38 @@ extern GFXCORE_FAMILY renderCoreFamily;
2323#ifdef TESTS_GEN8
2424#define BDW_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN8_CORE>::GfxFamily>();
2525#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)
2627#else
2728#define BDW_TYPED_TEST_BODY
2829#define BDW_TYPED_CMDTEST_BODY
30+ #define BDW_SUPPORTED_TEST (cmdSetBase ) false
2931#endif
3032#ifdef TESTS_GEN9
3133#define SKL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN9_CORE>::GfxFamily>();
3234#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)
3336#else
3437#define SKL_TYPED_TEST_BODY
3538#define SKL_TYPED_CMDTEST_BODY
39+ #define SKL_SUPPORTED_TEST (cmdSetBase ) false
3640#endif
3741#ifdef TESTS_GEN10
3842#define CNL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN10_CORE>::GfxFamily>();
3943#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)
4045#else
4146#define CNL_TYPED_TEST_BODY
4247#define CNL_TYPED_CMDTEST_BODY
48+ #define CNL_SUPPORTED_TEST (cmdSetBase ) false
4349#endif
4450#ifdef TESTS_GEN11
4551#define ICL_TYPED_TEST_BODY testBodyHw<typename NEO::GfxFamilyMapper<IGFX_GEN11_CORE>::GfxFamily>();
4652#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)
4754#else
4855#define ICL_TYPED_TEST_BODY
4956#define ICL_TYPED_CMDTEST_BODY
57+ #define ICL_SUPPORTED_TEST (cmdSetBase ) false
5058#endif
5159
5260#define TO_STR2 (x ) #x
@@ -195,6 +203,31 @@ extern GFXCORE_FAMILY renderCoreFamily;
195203#define PLATFORM_EXCLUDES_CLASS_NAME (test_suite_name, test_name ) \
196204 PLATFORM_EXCLUDES_##test_suite_name##test_name
197205
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+
198231// Macros to provide template based testing.
199232// Test can use FamilyType in the test -- equivalent to SKLFamily
200233#define HWCMDTEST_TEST_ (cmdset_gen_base, test_suite_name, test_name, parent_class, parent_id ) \
@@ -265,12 +298,12 @@ extern GFXCORE_FAMILY renderCoreFamily;
265298 } \
266299 void SetUp () override { \
267300 if (notExcluded ()) { \
268- parent_class::SetUp (); \
301+ CALL_IF_SUPPORTED (cmdset_gen_base, parent_class::SetUp ()); \
269302 } \
270303 } \
271304 void TearDown () override { \
272305 if (notExcluded ()) { \
273- parent_class::TearDown (); \
306+ CALL_IF_SUPPORTED (cmdset_gen_base, parent_class::TearDown ()); \
274307 } \
275308 } \
276309 static ::testing::TestInfo *const test_info_ GTEST_ATTRIBUTE_UNUSED_; \
0 commit comments