summaryrefslogtreecommitdiff
path: root/modules/remote-sycl/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/remote-sycl/tests')
-rw-r--r--modules/remote-sycl/tests/data.cpp58
1 files changed, 44 insertions, 14 deletions
diff --git a/modules/remote-sycl/tests/data.cpp b/modules/remote-sycl/tests/data.cpp
index a2bb506..dff19fb 100644
--- a/modules/remote-sycl/tests/data.cpp
+++ b/modules/remote-sycl/tests/data.cpp
@@ -17,8 +17,10 @@ SAW_TEST("SYCL Data Management"){
using namespace saw;
data<schema::TestStruct> host_data;
- host_data.template get<"foo">() = 321u;
- host_data.template get<"bra">() = 123;
+ auto& foo = host_data.template get<"foo">();
+ foo = 321u;
+ auto& bra = host_data.template get<"bra">();
+ bra = 123;
auto& baz = host_data.template get<"baz">();
baz = {1024};
for(uint64_t i = 0; i < baz.size(); ++i){
@@ -52,28 +54,56 @@ SAW_TEST("SYCL Data Management"){
bool ran = false;
bool error_ran = false;
+ bool expected_values = true;
+ std::string err_msg;
- auto conv = data_cl.receive(val).then([&](auto dat){
- auto& foo = dat.template get<"foo">();
- auto& bra = dat.template get<"bra">();
- auto& baz = dat.template get<"baz">();
- SAW_EXPECT(foo == host_data.template get<"foo">(), "Data sent back wasn't equal");
- SAW_EXPECT(bra == host_data.template get<"bra">(), "Data sent back wasn't equal");
+ auto conv = data_cl.receive(val).then([&](auto dat) {
+ ran = true;
+
+ auto& foo_b = dat.template get<"foo">();
- for(uint64_t i = 0u; i < baz.size(); ++i){
- SAW_EXPECT(baz.at(i) == host_data.template get<"baz">().at(i), "Data sent back wasn't equal");
+ if(foo != foo_b){
+ expected_values = false;
+ err_msg = "foo not equal. ";
+ err_msg += std::to_string(foo.get());
+ err_msg += " - ";
+ err_msg += std::to_string(foo_b.get());
+ return;
+ }
+
+ auto& bra_b = dat.template get<"bra">();
+ if(bra != bra_b){
+ expected_values = false;
+ err_msg = "bra not equal. ";
+ err_msg += std::to_string(bra.get());
+ err_msg += " - ";
+ err_msg += std::to_string(bra_b.get());
+ return;
+ }
+
+ auto& baz_b = dat.template get<"baz">();
+ if(baz.size() != baz_b.size()){
+ expected_values = false;
+ err_msg = "baz not equal. ";
+ err_msg += std::to_string(baz.size());
+ err_msg += " - ";
+ err_msg += std::to_string(baz_b.size());
+ return;
}
- ran = true;
}, [&](auto err){
error_ran = true;
return std::move(err);
});
auto eob = conv.take();
- SAW_EXPECT(eob.is_value(), "conv value doesn't exist");
+ if(eob.is_error()){
+ auto& err = eob.get_error();
+ SAW_EXPECT(false, (std::string{"Conv value doesn't exist: "} + std::string{err.get_category()} + std::string{" - "} + std::string{err.get_message()}));
+ }
auto& bval = eob.get_value();
- SAW_EXPECT(!error_ran, "conveyor ran, but we got an error");
- SAW_EXPECT(ran, "conveyor didn't run");
+ SAW_EXPECT(!error_ran, "Conveyor ran, but we got an error.");
+ SAW_EXPECT(ran, "Conveyor didn't run.");
+ SAW_EXPECT(expected_values, std::string{"Values are not equal. "} + err_msg);
}
}