1 #include <gmock/gmock.h>
2 #include <gtest/gtest.h>
5 #include <mbf_msgs/GetPathAction.h>
8 #include <mbf_abstract_nav/abstract_action_base.hpp>
19 MOCK_METHOD0(cancel,
bool());
22 MOCK_METHOD0(run,
void());
29 :
public AbstractActionBase<mbf_msgs::GetPathAction, MockedExecution>,
37 : test_name(
"action_base"),
38 ri(tf_,
"global_frame",
"local_frame",
ros::Duration(0)),
39 AbstractActionBase(test_name, ri)
48 unsigned char slot = 1;
50 concurrency_slots_[slot].thread_ptr =
51 threads_.create_thread(boost::bind(&AbstractActionBaseFixture::run,
this,
52 boost::ref(concurrency_slots_[slot])));
55 using testing::Return;
60 for (
unsigned char slot = 0; slot != 10; ++slot) {
63 EXPECT_CALL(*concurrency_slots_[slot].execution, cancel())
64 .WillRepeatedly(Return(
true));
67 concurrency_slots_[slot].in_use =
true;
68 concurrency_slots_[slot].thread_ptr = threads_.create_thread(
69 boost::bind(&AbstractActionBaseFixture::run,
this,
70 boost::ref(concurrency_slots_[slot])));
77 for (ConcurrencyMap::iterator slot = concurrency_slots_.begin();
78 slot != concurrency_slots_.end(); ++slot)
79 ASSERT_FALSE(slot->second.in_use);
82 int main(
int argc,
char **argv)
85 ros::init(argc, argv,
"abstract_action_base");
87 testing::InitGoogleTest(&argc, argv);
88 return RUN_ALL_TESTS();