From 2a442407538628b7b04c63c0643d521739de6b69 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Wed, 14 Aug 2024 10:19:32 +0200 Subject: Adding a macro for simpler test writing and wip on fs --- modules/codec/tests/args.cpp | 2 +- modules/core/c++/test/suite.hpp | 9 ++++++++ modules/remote-filesystem/SConstruct | 1 + modules/remote-filesystem/c++/SConscript | 24 ++++++++++----------- modules/remote-filesystem/c++/remote.hpp | 2 +- modules/remote-filesystem/c++/transport.hpp | 4 +--- modules/remote-filesystem/tests/transport.cpp | 30 +++++++++++++++++++++++++++ 7 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 modules/remote-filesystem/tests/transport.cpp (limited to 'modules') diff --git a/modules/codec/tests/args.cpp b/modules/codec/tests/args.cpp index 7be3c05..f42056a 100644 --- a/modules/codec/tests/args.cpp +++ b/modules/codec/tests/args.cpp @@ -40,7 +40,7 @@ SAW_TEST("Codec Args Decode Basic"){ codec, encode::Args> args_codec; auto eov = args_codec.decode(dat_args, dat_nat); - SAW_EXPECT(eov.is_value(), std::string{"Couldn't decode data. "} + std::string{eov.get_error().get_category()} + std::string{" - "} + std::string{eov.get_error().get_message()}); + SAW_EOV_EXPECT(eov, "Couldn't decode data. "); auto& prog = dat_nat.template get<"program">(); auto& str = dat_nat.template get<"args">(); diff --git a/modules/core/c++/test/suite.hpp b/modules/core/c++/test/suite.hpp index 38a4716..88d741a 100644 --- a/modules/core/c++/test/suite.hpp +++ b/modules/core/c++/test/suite.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "../common.hpp" @@ -41,3 +42,11 @@ public: auto msg = msg_split; \ throw std::runtime_error{std::string{msg}};\ } + +#define SAW_EOV_EXPECT(eov_expr, msg_split) \ + if( (eov_expr.is_error()) ){ \ + auto& err = eov_expr.get_error(); \ + std::stringstream sstr; \ + sstr< error_or>> data_listen(ref> addr){ - auto insert_res = registered_data_servers_.emplace(std::make_pair(addr.get_path_string(),{})); + auto insert_res = registered_data_servers_.emplace(std::make_pair(addr().get_path_string(),ptr>{})); if(!insert_res.second){ return make_error(); } diff --git a/modules/remote-filesystem/c++/transport.hpp b/modules/remote-filesystem/c++/transport.hpp index 367f533..0db4600 100644 --- a/modules/remote-filesystem/c++/transport.hpp +++ b/modules/remote-filesystem/c++/transport.hpp @@ -32,12 +32,10 @@ public: error_or send(const data& dat, id store_id){ try { } - return make_error(); } error_or allocate(data::MetaSchema, Encoding> meta, id store_id){ - return make_error(); } @@ -46,7 +44,7 @@ public: } error_or> receive(id store_id){ - + return make_error(); } }; diff --git a/modules/remote-filesystem/tests/transport.cpp b/modules/remote-filesystem/tests/transport.cpp new file mode 100644 index 0000000..05c13a6 --- /dev/null +++ b/modules/remote-filesystem/tests/transport.cpp @@ -0,0 +1,30 @@ +#include +#include "../c++/transport.hpp" + +namespace { +namespace sch { +using namespace saw::schema; + +using Foo = Struct< + Member, + Member +>; +} + +SAW_TEST("File Remote"){ + using namespace saw; + + remote file_remote; + + auto eo_addr = file_remote.parse_address("./example_file"); + SAW_EOV_EXPECT(eo_addr, "Couldn't parse file"); + auto& addr = eo_addr.get_value(); + + auto eo_dat_srv = file_remote.data_listen({*addr}); + SAW_EOV_EXPECT(eo_dat_srv, "Couldn't setup data server."); + auto& dat_srv = eo_dat_srv.get_value(); + + +} + +} -- cgit v1.2.3