[WIP / Re-Opened] Add functions to return formatted Node Name-Namespace strings (#698)

* Add functions to return formatted Node Name-Namespace strings

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Changed get_node_names to return fully qualified names, removed namespace method
Signed-off-by: Oswin So <oswinso@gmail.com>

* Removed unnecessary capture-by-reference

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Added first draft of tests

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Fixed bug creating phantom empty name/namespaces

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Re-ordered includes

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Swap checks to see if name is in set

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Fixed style errors from uncrustify

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Swapped to unordered_set

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Re-ordered includes again

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* nitpick: minimize vertical whitespace

see: https://google.github.io/styleguide/cppguide.html#Vertical_Whitespace

Signed-off-by: William Woodall <william@osrfoundation.org>

* Add API documentation for added get_node_names function

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Revert to last known semi-working point

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Modified expected test results

A fully-qualified name is "namespace"/"name". If namespace is set to be "/" (as they are in these tests), we would expect a qualified name of "//name"
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Have get_node_names determine if central slash needed or not

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Corrected tests to not accept double slashes

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Undo changes to .gitignore

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Change qualified string construction to better handle invalid slashes

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Removed debugging statements

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>

* Simplified slash-checking logic

Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
This commit is contained in:
jhdcs 2019-05-01 20:56:05 -04:00 committed by Shane Loretz
parent e9101b49cd
commit a8a0788f81
4 changed files with 53 additions and 11 deletions

View file

@ -117,10 +117,10 @@ TEST_F(TestComponentManager, load_components)
return std::find(node_names.begin(), node_names.end(), name) != node_names.end();
};
EXPECT_TRUE(find_in_nodes("test_component_foo"));
EXPECT_TRUE(find_in_nodes("test_component_bar"));
EXPECT_TRUE(find_in_nodes("test_component_baz"));
EXPECT_TRUE(find_in_nodes("test_component_bing"));
EXPECT_TRUE(find_in_nodes("/test_component_foo"));
EXPECT_TRUE(find_in_nodes("/test_component_bar"));
EXPECT_TRUE(find_in_nodes("/test_component_baz"));
EXPECT_TRUE(find_in_nodes("/ns/test_component_bing"));
}
TEST_F(TestComponentManager, load_invalid_components)
@ -263,7 +263,7 @@ TEST_F(TestComponentManager, unload_component)
auto find_in_nodes = [node_names](std::string name) {
return std::find(node_names.begin(), node_names.end(), name) != node_names.end();
};
EXPECT_TRUE(find_in_nodes("test_component_foo"));
EXPECT_TRUE(find_in_nodes("/test_component_foo"));
{
auto client = node->create_client<composition_interfaces::srv::UnloadNode>(