@@ -24,20 +24,24 @@ namespace bc = boost::compute;
24
24
25
25
BOOST_AUTO_TEST_CASE (construct_from_devices)
26
26
{
27
- std::vector<bc::device> all_devices;
27
+ std::vector<std::vector< bc::device> > all_devices;
28
28
29
29
const std::vector<bc::platform> &platforms = bc::system::platforms ();
30
30
for (size_t i = 0 ; i < platforms.size (); i++){
31
31
const bc::platform &platform = platforms[i];
32
+
32
33
std::vector<bc::device> platform_devices = platform.devices ();
34
+ std::vector<cl_context_properties*> properties (platform_devices.size (), 0 );
33
35
34
36
// create a distributed context for devices in current platform
35
- bc::distributed::context ctx (platform_devices);
37
+ bc::distributed::context ctx1 (platform_devices);
38
+ bc::distributed::context ctx2 (platform_devices, properties);
36
39
37
40
// check context count
38
- BOOST_CHECK_EQUAL (ctx.size (), platform.device_count ());
41
+ BOOST_CHECK_EQUAL (ctx1.size (), platform_devices.size ());
42
+ BOOST_CHECK_EQUAL (ctx2.size (), platform_devices.size ());
39
43
40
- all_devices.insert (all_devices. end (), platform_devices. begin (), platform_devices. end () );
44
+ all_devices.push_back ( platform_devices);
41
45
}
42
46
43
47
// create a distributed context for devices in current platform
@@ -58,14 +62,25 @@ BOOST_AUTO_TEST_CASE(construct_from_contexts)
58
62
bc::context ctx (platform.devices ());
59
63
contexts.push_back (ctx);
60
64
}
61
- bc::distributed::context ctx (contexts);
62
65
63
- BOOST_CHECK_EQUAL (ctx.size (), contexts.size ());
66
+ bc::distributed::context ctx1 (contexts);
67
+ bc::distributed::context ctx2 (contexts.begin (), contexts.end ());
68
+
69
+ BOOST_CHECK_EQUAL (ctx1.size (), contexts.size ());
70
+ BOOST_CHECK_EQUAL (ctx2.size (), contexts.size ());
64
71
for (size_t i = 0 ; i < contexts.size (); i++) {
65
- BOOST_CHECK_EQUAL (ctx.get (i), contexts[i]);
72
+ BOOST_CHECK_EQUAL (ctx1.get (i), contexts[i]);
73
+ BOOST_CHECK_EQUAL (ctx2.get (i), contexts[i]);
66
74
}
67
75
}
68
76
77
+ BOOST_AUTO_TEST_CASE (construct_from_context)
78
+ {
79
+ bc::distributed::context ctx (context);
80
+ BOOST_CHECK_EQUAL (ctx.size (), 1 );
81
+ BOOST_CHECK_EQUAL (ctx.get (0 ), context);
82
+ }
83
+
69
84
BOOST_AUTO_TEST_CASE (copy_ctor)
70
85
{
71
86
std::vector<bc::context> contexts;
@@ -137,33 +152,4 @@ BOOST_AUTO_TEST_CASE(get_context)
137
152
}
138
153
}
139
154
140
- // BOOST_AUTO_TEST_CASE(test)
141
- // {
142
- // bc::platform platform = Context::queue.get_context().get_device().platform();
143
- // // create a context for containing all devices in the platform
144
- // bc::context ctx(platform.devices());
145
- //
146
- // for(size_t i = 0; i < platform.devices().size(); i++)
147
- // {
148
- // std::cout << platform.devices()[i].name() << std::endl;
149
- // }
150
- //
151
- // bc::vector<bc::int_> vec(64, ctx);
152
- //
153
- // bc::command_queue q0(ctx, platform.devices()[0]);
154
- // bc::command_queue q1(ctx, platform.devices()[1]);
155
- //
156
- // bc::fill(vec.begin(), vec.begin() + 32, bc::int_(4), q0);
157
- // q0.finish();
158
- // bc::fill(vec.begin() + 32, vec.end(), bc::int_(3), q1);
159
- // q1.finish();
160
- //
161
- // bc::fill(vec.begin(), vec.end(), bc::int_(5), q1);
162
- // q0.finish();
163
- //
164
- // // for(size_t i = 0; i < vec.size(); i++) {
165
- // // std::cout << vec[i] << std::endl;
166
- // // }
167
- // }
168
-
169
155
BOOST_AUTO_TEST_SUITE_END ()
0 commit comments