Skip to content

Commit 5806a32

Browse files
Use common test_fixture and don't start a separate thread
1 parent 0837922 commit 5806a32

File tree

6 files changed

+44
-160
lines changed

6 files changed

+44
-160
lines changed

test/control_filters/test_exponential_filter.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,14 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "test_exponential_filter.hpp"
15+
#include "test_filter_util.hpp"
1616

17-
TEST_F(ExponentialFilterTest, TestExponentialFilterThrowsUnconfigured)
17+
#include <memory>
18+
#include "gmock/gmock.h"
19+
20+
#include "control_filters/exponential_filter.hpp"
21+
22+
TEST_F(FilterTest, TestExponentialFilterThrowsUnconfigured)
1823
{
1924
std::shared_ptr<filters::FilterBase<double>> filter_ =
2025
std::make_shared<control_filters::ExponentialFilter<double>>();
@@ -23,7 +28,7 @@ TEST_F(ExponentialFilterTest, TestExponentialFilterThrowsUnconfigured)
2328
}
2429

2530

26-
TEST_F(ExponentialFilterTest, TestExponentialFilterComputation)
31+
TEST_F(FilterTest, TestExponentialFilterComputation)
2732
{
2833
// parameters should match the test yaml file
2934
double alpha = 0.7;

test/control_filters/test_exponential_filter.hpp

Lines changed: 0 additions & 62 deletions
This file was deleted.

test/control_filters/test_low_pass_filter.hpp renamed to test/control_filters/test_filter_util.hpp

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,52 +12,40 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#ifndef CONTROL_FILTERS__TEST_LOW_PASS_FILTER_HPP_
16-
#define CONTROL_FILTERS__TEST_LOW_PASS_FILTER_HPP_
15+
#ifndef CONTROL_FILTERS__TEST_FILTER_UTIL_HPP_
16+
#define CONTROL_FILTERS__TEST_FILTER_UTIL_HPP_
1717

1818
#include <memory>
19-
#include <thread>
2019
#include "gmock/gmock.h"
2120

22-
#include "control_filters/low_pass_filter.hpp"
23-
#include "geometry_msgs/msg/wrench_stamped.hpp"
24-
#include "rclcpp/rclcpp.hpp"
21+
#include "rclcpp/executors.hpp"
22+
#include "rclcpp/node.hpp"
23+
#include "rclcpp/logger.hpp"
2524

26-
namespace
27-
{
28-
static const rclcpp::Logger LOGGER = rclcpp::get_logger("test_low_pass_filter");
29-
} // namespace
30-
31-
class LowPassFilterTest : public ::testing::Test
25+
class FilterTest : public ::testing::Test
3226
{
3327
public:
3428
void SetUp() override
3529
{
3630
auto testname = ::testing::UnitTest::GetInstance()->current_test_info()->name();
3731
node_ = std::make_shared<rclcpp::Node>(testname);
3832
executor_->add_node(node_);
39-
executor_thread_ = std::thread([this]() { executor_->spin(); });
4033
}
4134

42-
LowPassFilterTest()
35+
FilterTest()
4336
{
4437
executor_ = std::make_shared<rclcpp::executors::SingleThreadedExecutor>();
4538
}
4639

4740
void TearDown() override
4841
{
4942
executor_->cancel();
50-
if (executor_thread_.joinable())
51-
{
52-
executor_thread_.join();
53-
}
5443
node_.reset();
5544
}
5645

5746
protected:
5847
rclcpp::Node::SharedPtr node_;
5948
rclcpp::Executor::SharedPtr executor_;
60-
std::thread executor_thread_;
6149
};
6250

63-
#endif // CONTROL_FILTERS__TEST_LOW_PASS_FILTER_HPP_
51+
#endif // CONTROL_FILTERS__TEST_FILTER_UTIL_HPP_

test/control_filters/test_low_pass_filter.cpp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,16 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "test_low_pass_filter.hpp"
15+
#include "test_filter_util.hpp"
1616

17-
TEST_F(LowPassFilterTest, TestLowPassWrenchFilterAllParameters)
17+
#include <memory>
18+
#include "gmock/gmock.h"
19+
20+
#include "geometry_msgs/msg/wrench_stamped.hpp"
21+
22+
#include "control_filters/low_pass_filter.hpp"
23+
24+
TEST_F(FilterTest, TestLowPassWrenchFilterAllParameters)
1825
{
1926
std::shared_ptr<filters::FilterBase<geometry_msgs::msg::WrenchStamped>> filter_ =
2027
std::make_shared<control_filters::LowPassFilter<geometry_msgs::msg::WrenchStamped>>();
@@ -26,12 +33,13 @@ TEST_F(LowPassFilterTest, TestLowPassWrenchFilterAllParameters)
2633
// change a parameter
2734
node_->set_parameter(rclcpp::Parameter("sampling_frequency", 500.0));
2835
// accept second call to configure with valid parameters to already configured filter
36+
// will give a warning "Filter %s already being reconfigured"
2937
ASSERT_TRUE(filter_->configure("", "TestLowPassFilter",
3038
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
3139
}
3240

3341

34-
TEST_F(LowPassFilterTest, TestLowPassWrenchFilterMissingParameter)
42+
TEST_F(FilterTest, TestLowPassWrenchFilterMissingParameter)
3543
{
3644
std::shared_ptr<filters::FilterBase<geometry_msgs::msg::WrenchStamped>> filter_ =
3745
std::make_shared<control_filters::LowPassFilter<geometry_msgs::msg::WrenchStamped>>();
@@ -41,7 +49,7 @@ TEST_F(LowPassFilterTest, TestLowPassWrenchFilterMissingParameter)
4149
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
4250
}
4351

44-
TEST_F(LowPassFilterTest, TestLowPassWrenchFilterInvalidThenFixedParameter)
52+
TEST_F(FilterTest, TestLowPassWrenchFilterInvalidThenFixedParameter)
4553
{
4654
std::shared_ptr<filters::FilterBase<geometry_msgs::msg::WrenchStamped>> filter_ =
4755
std::make_shared<control_filters::LowPassFilter<geometry_msgs::msg::WrenchStamped>>();
@@ -57,23 +65,23 @@ TEST_F(LowPassFilterTest, TestLowPassWrenchFilterInvalidThenFixedParameter)
5765
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
5866
}
5967

60-
TEST_F(LowPassFilterTest, TestLowPassFilterThrowsUnconfigured)
68+
TEST_F(FilterTest, TestLowPassFilterThrowsUnconfigured)
6169
{
6270
std::shared_ptr<filters::FilterBase<double>> filter_ =
6371
std::make_shared<control_filters::LowPassFilter<double>>();
6472
double in, out;
6573
ASSERT_THROW(filter_->update(in, out), std::runtime_error);
6674
}
6775

68-
TEST_F(LowPassFilterTest, TestLowPassWrenchFilterThrowsUnconfigured)
76+
TEST_F(FilterTest, TestLowPassWrenchFilterThrowsUnconfigured)
6977
{
7078
std::shared_ptr<filters::FilterBase<geometry_msgs::msg::WrenchStamped>> filter_ =
7179
std::make_shared<control_filters::LowPassFilter<geometry_msgs::msg::WrenchStamped>>();
7280
geometry_msgs::msg::WrenchStamped in, out;
7381
ASSERT_THROW(filter_->update(in, out), std::runtime_error);
7482
}
7583

76-
TEST_F(LowPassFilterTest, TestLowPassWrenchFilterComputation)
84+
TEST_F(FilterTest, TestLowPassWrenchFilterComputation)
7785
{
7886
// parameters should match the test yaml file
7987
double sampling_freq = 1000.0;

test/control_filters/test_rate_limiter.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,15 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "test_rate_limiter.hpp"
15+
#include "test_filter_util.hpp"
1616

17-
TEST_F(RateLimiterTest, TestRateLimiterAllParameters)
17+
#include <memory>
18+
#include <thread>
19+
#include "gmock/gmock.h"
20+
21+
#include "control_filters/rate_limiter.hpp"
22+
23+
TEST_F(FilterTest, TestRateLimiterAllParameters)
1824
{
1925
std::shared_ptr<filters::FilterBase<double>> filter_ =
2026
std::make_shared<control_filters::RateLimiter<double>>();
@@ -26,12 +32,13 @@ TEST_F(RateLimiterTest, TestRateLimiterAllParameters)
2632
// change a parameter
2733
node_->set_parameter(rclcpp::Parameter("sampling_interval", 0.5));
2834
// accept second call to configure with valid parameters to already configured filter
35+
// will give a warning "Filter %s already being reconfigured"
2936
ASSERT_TRUE(filter_->configure("", "TestRateLimiter",
3037
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
3138
}
3239

3340

34-
TEST_F(RateLimiterTest, TestRateLimiterMissingParameter)
41+
TEST_F(FilterTest, TestRateLimiterMissingParameter)
3542
{
3643
std::shared_ptr<filters::FilterBase<double>> filter_ =
3744
std::make_shared<control_filters::RateLimiter<double>>();
@@ -41,7 +48,7 @@ TEST_F(RateLimiterTest, TestRateLimiterMissingParameter)
4148
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
4249
}
4350

44-
TEST_F(RateLimiterTest, TestRateLimiterInvalidThenFixedParameter)
51+
TEST_F(FilterTest, TestRateLimiterInvalidThenFixedParameter)
4552
{
4653
std::shared_ptr<filters::FilterBase<double>> filter_ =
4754
std::make_shared<control_filters::RateLimiter<double>>();
@@ -57,15 +64,15 @@ TEST_F(RateLimiterTest, TestRateLimiterInvalidThenFixedParameter)
5764
node_->get_node_logging_interface(), node_->get_node_parameters_interface()));
5865
}
5966

60-
TEST_F(RateLimiterTest, TestRateLimiterThrowsUnconfigured)
67+
TEST_F(FilterTest, TestRateLimiterThrowsUnconfigured)
6168
{
6269
std::shared_ptr<filters::FilterBase<double>> filter_ =
6370
std::make_shared<control_filters::RateLimiter<double>>();
6471
double in, out;
6572
ASSERT_THROW(filter_->update(in, out), std::runtime_error);
6673
}
6774

68-
TEST_F(RateLimiterTest, TestRateLimiterCompute)
75+
TEST_F(FilterTest, TestRateLimiterCompute)
6976
{
7077
std::shared_ptr<filters::FilterBase<double>> filter_ =
7178
std::make_shared<control_filters::RateLimiter<double>>();

test/control_filters/test_rate_limiter.hpp

Lines changed: 0 additions & 62 deletions
This file was deleted.

0 commit comments

Comments
 (0)