diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c4e1ce8bee30236fa0ba79626d2588898a4f2b15..9a3910693ca3a0408a3b00bc145442b28089c5cb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -84,6 +84,10 @@ target_link_libraries(gtest_motion_buffer ${PROJECT_NAME}) wolf_add_gtest(gtest_pack_KF_buffer gtest_pack_KF_buffer.cpp) target_link_libraries(gtest_pack_KF_buffer ${PROJECT_NAME}) +# Parameters server +wolf_add_gtest(gtest_param_server gtest_param_server.cpp ${CMAKE_CURRENT_LIST_DIR}) +target_link_libraries(gtest_param_server ${PROJECT_NAME}) + # YAML parser wolf_add_gtest(gtest_parser_yaml gtest_parser_yaml.cpp) target_link_libraries(gtest_parser_yaml ${PROJECT_NAME}) diff --git a/test/gtest_param_server.cpp b/test/gtest_param_server.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4c85b1f7786dda726d49bfa43eef4f4d3574a84e --- /dev/null +++ b/test/gtest_param_server.cpp @@ -0,0 +1,31 @@ +#include "utils_gtest.h" +#include "base/converter.h" +#include "base/wolf.h" +#include "../hello_plugin/parser_yaml.hpp" +#include "base/params_server.hpp" + +using namespace std; +using namespace wolf; + +parserYAML parse(string _file) +{ + parserYAML parser = parserYAML(_file); + parser.parse(); + return parser; +} + +TEST(ParamsServer, Default) +{ + std::string wolf_root = _WOLF_ROOT_DIR; + auto parser = parse(wolf_root + "/test/params1.yaml"); + auto params = parser.getParams(); + paramsServer server = paramsServer(params, parser.sensorsSerialization(), parser.processorsSerialization()); + EXPECT_EQ(server.getParam<double>("should_not_exist", "2.6"), 2.6); + EXPECT_EQ(server.getParam<bool>("my_proc_test/voting_active", "true"), false); + EXPECT_NE(server.getParam<unsigned int>("my_proc_test/time_tolerance", "23"), 23); +} +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/test/gtest_parser_yaml.cpp b/test/gtest_parser_yaml.cpp index caf037a97ccbf776dcf7042bb6ef06ad6435acd1..b7710b3cad74791d8feb2b52328feeae904c65fe 100644 --- a/test/gtest_parser_yaml.cpp +++ b/test/gtest_parser_yaml.cpp @@ -1,10 +1,13 @@ #include "utils_gtest.h" #include "base/converter.h" +#include "base/wolf.h" #include "../hello_plugin/parser_yaml.hpp" using namespace std; using namespace wolf; +std::string wolf_root = _WOLF_ROOT_DIR; + parserYAML parse(string _file) { parserYAML parser = parserYAML(_file); @@ -14,25 +17,26 @@ parserYAML parse(string _file) TEST(ParserYAML, RegularParse) { - auto parser = parse("../test/params1.yaml"); + cout << "WOOT " << wolf_root + "/test/params1.yaml" << endl; + auto parser = parse(wolf_root + "/test/params1.yaml"); auto params = parser.getParams(); // for(auto it : params) // cout << it.first << " %% " << it.second << endl; - ASSERT_EQ(params["odom/intrinsic/k_rot_to_rot"], "0.1"); - ASSERT_EQ(params["processor1/sensorname"], "odom"); + EXPECT_EQ(params["odom/intrinsic/k_rot_to_rot"], "0.1"); + EXPECT_EQ(params["processor1/sensorname"], "odom"); } TEST(ParserYAML, ParseMap) { - auto parser = parse("../test/params2.yaml"); + auto parser = parse(wolf_root + "/test/params2.yaml"); auto params = parser.getParams(); - ASSERT_EQ(params["processor1/mymap"], "[{k1:v1},{k2:v2},{k3:[v3,v4,v5]}]"); + EXPECT_EQ(params["processor1/mymap"], "[{k1:v1},{k2:v2},{k3:[v3,v4,v5]}]"); } TEST(ParserYAML, JumpFile) { - auto parser = parse("../test/params3.yaml"); + auto parser = parse(wolf_root + "/test/params3.yaml"); auto params = parser.getParams(); - ASSERT_EQ(params["my_proc_test/max_buff_length"], "100"); - ASSERT_EQ(params["my_proc_test/jump/voting_active"], "false"); + EXPECT_EQ(params["my_proc_test/max_buff_length"], "100"); + EXPECT_EQ(params["my_proc_test/jump/voting_active"], "false"); } int main(int argc, char **argv) { diff --git a/test/params1.yaml b/test/params1.yaml index db5fab3faaa036d7ba02f7f30c6a21468098330f..9281f2ce9f7271a44eb652c13971b172de17452d 100644 --- a/test/params1.yaml +++ b/test/params1.yaml @@ -24,7 +24,7 @@ config: type: "ODOM 2D" name: "my_proc_test" sensorname: "odom" - follow: "../hello_plugin/params_conf.yaml" + follow: "../test/params3.1.yaml" files: - "/home/jcasals/workspace/wip/wolf/lib/libsensor_odo.so" - "/home/jcasals/workspace/wip/wolf/lib/librange_bearing.so" \ No newline at end of file diff --git a/test/params3.1.yaml b/test/params3.1.yaml index 0d80a5802f5da772f59c29adf12257c8f79663d3..bd9b495c830e56f17f11abbb5b2109d780f4e438 100644 --- a/test/params3.1.yaml +++ b/test/params3.1.yaml @@ -5,4 +5,4 @@ dist_traveled: 100 max_buff_length: 100 max_time_span: 100 time_tolerance: 100 -voting_active: false \ No newline at end of file +voting_active: false \ No newline at end of file