Skip to content

Commit 4adc8d2

Browse files
authored
[SYCLomatic oneapi-src#481] Add test for dpct::device_vector move semantics (oneapi-src#190)
Signed-off-by: Yilong Guo <[email protected]>
1 parent 83ca163 commit 4adc8d2

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

help_function/help_function.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<tests>
66
<test testName="array_copy" configFile="config/TEMPLATE_help_function.xml" />
77
<test testName="assign_device_vector" configFile="config/TEMPLATE_help_function.xml" />
8+
<test testName="move_device_vector" configFile="config/TEMPLATE_help_function.xml" />
89
<test testName="atomic_add_float" configFile="config/TEMPLATE_help_function.xml" />
910
<test testName="atomic_fetch_compare_inc" configFile="config/TEMPLATE_help_function.xml" />
1011
<test testName="async_exception" configFile="config/TEMPLATE_help_function.xml" />
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <oneapi/dpl/execution>
2+
#include <oneapi/dpl/algorithm>
3+
#include <sycl.hpp>
4+
#include <dpct/dpct.hpp>
5+
#include <dpct/dpl_utils.hpp>
6+
7+
bool verify(dpct::device_vector<int> &D, int N, int V) {
8+
if (D.size() != N)
9+
return false;
10+
for (int i = 0; i < N; ++i)
11+
if (D[i] != V)
12+
return false;
13+
return true;
14+
}
15+
16+
int main(void) {
17+
constexpr int N = 4;
18+
constexpr int V = 42;
19+
// Construct D1 from move constructor.
20+
dpct::device_vector<int> D1(std::move(dpct::device_vector<int>(N, V)));
21+
if (!verify(D1, N, V)) {
22+
return 1;
23+
}
24+
// Move assign to D2.
25+
dpct::device_vector<int> D2;
26+
D2 = std::move(dpct::device_vector<int>(N, V));
27+
if (!verify(D2, N, V)) {
28+
return 1;
29+
}
30+
return 0;
31+
}

0 commit comments

Comments
 (0)