Created
May 14, 2020 00:18
-
-
Save sunapi386/74c06f1fa56c5da02db6a6ef0928ec20 to your computer and use it in GitHub Desktop.
ros publish subscribe test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
string TOPIC = /ack | |
time ts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
project(rosexample) | |
cmake_minimum_required(VERSION 3.1) | |
add_compile_options(-std=c++17) | |
find_package(catkin REQUIRED COMPONENTS roscpp rospy rostest std_msgs message_generation) | |
add_message_files(FILES ack.msg) | |
generate_messages(DEPENDENCIES std_msgs) | |
include_directories(${catkin_INCLUDE_DIRS}) | |
add_rostest_gtest(tester tester.test tester.cpp) | |
add_dependencies(tester ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) | |
target_link_libraries(tester ${catkin_LIBRARIES} ${rostest_LIBRARIES} gtest) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ros/ros.h> | |
#include <gtest/gtest.h> | |
#include "ack.h" | |
TEST(MyTestSuite, pubSub) | |
{ | |
ros::NodeHandle nh; | |
uint16_t h = 0; | |
ros::Publisher pub = nh.advertise<ack>(ack::TOPIC, 0); | |
ros::Subscriber sub = nh.subscribe<ack>(ack::TOPIC, 0, [&h](const ros::MessageEvent< ack const >& event) { | |
auto msg = *(event.getConstMessage()); | |
h = 1U; | |
}); | |
EXPECT_EQ(pub.getNumSubscribers(), 1U); | |
EXPECT_EQ(sub.getNumPublishers(), 1U); | |
boost::shared_ptr<ack> ack1(new ack); | |
pub.publish(ack1); | |
ros::spinOnce(); | |
EXPECT_EQ(h, 1U); | |
} | |
int main(int argc, char** argv) | |
{ | |
testing::InitGoogleTest(&argc, argv); | |
ros::init(argc, argv, "async_service_node_tester"); | |
return RUN_ALL_TESTS(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<launch> | |
<test pkg="rosexample" type="tester" test-name="tester" /> | |
</launch> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment