13
13
using namespace cl ::sycl;
14
14
15
15
namespace {
16
- class DISABLED_EnqueueMemTest : public ::testing::Test {
16
+ class EnqueueMemTest : public testing ::TestWithParam<detail::plugin> {
17
17
protected:
18
- std::vector<detail::plugin> Plugins;
19
-
20
18
constexpr static size_t _numElementsX = 8 ;
21
19
constexpr static size_t _numElementsY = 4 ;
22
20
@@ -25,72 +23,77 @@ class DISABLED_EnqueueMemTest : public ::testing::Test {
25
23
pi_queue _queue = nullptr ;
26
24
pi_mem _mem = nullptr ;
27
25
28
- DISABLED_EnqueueMemTest () = default ;
26
+ EnqueueMemTest () = default ;
29
27
30
- ~DISABLED_EnqueueMemTest () = default ;
28
+ ~EnqueueMemTest () = default ;
31
29
32
30
void SetUp () override {
33
- Plugins = detail::pi::initialize ();
34
- ASSERT_FALSE (Plugins. empty () );
31
+
32
+ detail::plugin plugin = GetParam ( );
35
33
36
34
pi_platform platform = nullptr ;
37
- ASSERT_EQ ((Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piPlatformsGet>(
35
+ ASSERT_EQ ((plugin .call_nocheck <detail::PiApiKind::piPlatformsGet>(
38
36
1 , &platform, nullptr )),
39
37
PI_SUCCESS);
40
38
41
- ASSERT_EQ ((Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piDevicesGet>(
42
- platform, PI_DEVICE_TYPE_GPU , 1 , &_device, nullptr )),
39
+ ASSERT_EQ ((plugin .call_nocheck <detail::PiApiKind::piDevicesGet>(
40
+ platform, PI_DEVICE_TYPE_DEFAULT , 1 , &_device, nullptr )),
43
41
PI_SUCCESS);
44
42
45
43
pi_result result = PI_INVALID_VALUE;
46
- result = Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piContextCreate>(
44
+ result = plugin .call_nocheck <detail::PiApiKind::piContextCreate>(
47
45
nullptr , 1u , &_device, nullptr , nullptr , &_context);
48
46
ASSERT_EQ (result, PI_SUCCESS);
49
47
50
- ASSERT_EQ ((Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piQueueCreate>(
48
+ ASSERT_EQ ((plugin .call_nocheck <detail::PiApiKind::piQueueCreate>(
51
49
_context, _device, 0 , &_queue)),
52
50
PI_SUCCESS);
53
51
54
- ASSERT_EQ ((Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piMemBufferCreate>(
52
+ ASSERT_EQ ((plugin .call_nocheck <detail::PiApiKind::piMemBufferCreate>(
55
53
_context, 0 , _numElementsX * _numElementsY * sizeof (pi_int32),
56
54
nullptr , &_mem)),
57
55
PI_SUCCESS);
58
56
}
59
57
60
58
void TearDown () override {
61
- ASSERT_EQ ((Plugins[0 ].call_nocheck <detail::PiApiKind::piMemRelease>(_mem)),
59
+
60
+ detail::plugin plugin = GetParam ();
61
+
62
+ ASSERT_EQ ((plugin.call_nocheck <detail::PiApiKind::piMemRelease>(_mem)),
62
63
PI_SUCCESS);
63
64
ASSERT_EQ (
64
- (Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piQueueRelease>(_queue)),
65
+ (plugin .call_nocheck <detail::PiApiKind::piQueueRelease>(_queue)),
65
66
PI_SUCCESS);
66
- ASSERT_EQ ((Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piContextRelease>(
67
+ ASSERT_EQ ((plugin .call_nocheck <detail::PiApiKind::piContextRelease>(
67
68
_context)),
68
69
PI_SUCCESS);
69
70
}
70
71
71
72
template <typename T> void TestBufferFill (const T &pattern) {
72
73
74
+ detail::plugin plugin = GetParam ();
75
+
73
76
T inValues[_numElementsX] = {};
74
77
75
78
for (size_t i = 0 ; i < _numElementsX; ++i) {
76
79
ASSERT_NE (pattern, inValues[i]);
77
80
}
78
81
79
82
ASSERT_EQ (
80
- (Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piEnqueueMemBufferWrite>(
83
+ (plugin .call_nocheck <detail::PiApiKind::piEnqueueMemBufferWrite>(
81
84
_queue, _mem, PI_TRUE, 0 , _numElementsX * sizeof (T), inValues, 0 ,
82
85
nullptr , nullptr )),
83
86
PI_SUCCESS);
84
87
85
88
ASSERT_EQ (
86
- (Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piEnqueueMemBufferFill>(
89
+ (plugin .call_nocheck <detail::PiApiKind::piEnqueueMemBufferFill>(
87
90
_queue, _mem, &pattern, sizeof (T), 0 , sizeof (inValues), 0 , nullptr ,
88
91
nullptr )),
89
92
PI_SUCCESS);
90
93
91
94
T outValues[_numElementsX] = {};
92
95
ASSERT_EQ (
93
- (Plugins[ 0 ] .call_nocheck <detail::PiApiKind::piEnqueueMemBufferRead>(
96
+ (plugin .call_nocheck <detail::PiApiKind::piEnqueueMemBufferRead>(
94
97
_queue, _mem, PI_TRUE, 0 , _numElementsX * sizeof (T), outValues, 0 ,
95
98
nullptr , nullptr )),
96
99
PI_SUCCESS);
@@ -101,6 +104,12 @@ class DISABLED_EnqueueMemTest : public ::testing::Test {
101
104
}
102
105
};
103
106
107
+ static std::vector<detail::plugin> Plugins = detail::pi::initialize();
108
+
109
+ INSTANTIATE_TEST_CASE_P (EnqueueMemTestImpl,
110
+ EnqueueMemTest,
111
+ testing::ValuesIn (Plugins),);
112
+
104
113
template <typename T>
105
114
struct vec4 {
106
115
T x, y, z, w;
@@ -127,7 +136,7 @@ struct vec2 {
127
136
}
128
137
};
129
138
130
- TEST_F (DISABLED_EnqueueMemTest , piEnqueueMemBufferFill) {
139
+ TEST_P (EnqueueMemTest , piEnqueueMemBufferFill) {
131
140
132
141
TestBufferFill (float {1 });
133
142
TestBufferFill (vec2<float >{1 , 2 });
0 commit comments