summaryrefslogtreecommitdiff
path: root/modules/remote/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/remote/tests')
-rw-r--r--modules/remote/tests/remote_loopback.cpp39
1 files changed, 27 insertions, 12 deletions
diff --git a/modules/remote/tests/remote_loopback.cpp b/modules/remote/tests/remote_loopback.cpp
index e78f646..2430029 100644
--- a/modules/remote/tests/remote_loopback.cpp
+++ b/modules/remote/tests/remote_loopback.cpp
@@ -21,20 +21,17 @@ using GroupedSchemas = saw::tmpl_group<
SAW_TEST("Remote Loopback Data"){
using namespace saw;
+ event_loop loop;
+ wait_scope wait{loop};
+
remote<rmt::Loopback> rmt;
- auto eov = rmt.parse_address();
+ auto eov = rmt.parse_address(0u);
SAW_EXPECT(eov.is_value(), "Didn't parse correctly");
auto& val = eov.get_value();
- interface<sch::TestInterface, encode::Native, storage::Default> iface{
- [](data<sch::UInt32>& foo){
- return foo.template cast_to<sch::Int64>();
- }
- };
-
- auto srv = data_server<sch::GroupedSchemas, encode::Native, rmt::Loopback>{};
- auto client = data_client<sch::GroupedSchemas, encode::Native, rmt::Loopback>{srv};
+ auto srv = data_server<sch::GroupedSchemas, encode::Native, rmt::Loopback>{val};
+ auto client = data_client<sch::GroupedSchemas, encode::Native, rmt::Loopback>{val};
data<sch::UInt64> foo{421};
id<sch::UInt64> sent_id = [&](){
@@ -43,9 +40,6 @@ SAW_TEST("Remote Loopback Data"){
return eov.get_value();
}();
- event_loop loop;
- wait_scope wait{loop};
-
{
auto conv = client.receive(sent_id);
auto eov = conv.take();
@@ -82,5 +76,26 @@ SAW_TEST("Remote Loopback Data"){
SAW_EXPECT(f_val, "Nullptr in find.");
f_val->set(5u);
}
+ {
+ auto conv = client.receive(alloc_id);
+ auto eov = conv.take();
+ SAW_EXPECT(eov.is_value(), "Failed receive.");
+ SAW_EXPECT(eov.get_value().get() == 5u, "Wrong received value.");
+ }
+
+ data<sch::FixedArray<sch::UInt64,1>> arr_meta{{128u}};
+
+ id<sch::Array<sch::Int32>> arr_alloc_id = [&](){
+ auto eov = client.allocate<sch::Array<sch::Int32>>(arr_meta);
+ SAW_EXPECT(eov.is_value(), "Failed send.");
+ return eov.get_value();
+ }();
+ {
+ auto eov = client.find(arr_alloc_id);
+ SAW_EXPECT(eov.is_value(), "Failed find.");
+ auto& f_val = eov.get_value();
+ SAW_EXPECT(f_val, "Nullptr in find.");
+ SAW_EXPECT(f_val->size() == arr_meta.at(0).get(), "Wrong initialized size.");
+ }
}
}