Make MapBuilderServer testable (#771)
Pass MapBuilder to the constructor so the MapBuilder can be mocked.master
parent
5bb81a9b4a
commit
def442b9db
|
@ -44,8 +44,11 @@ class ClientServerTest : public ::testing::Test {
|
|||
cartographer::mapping::test::ResolveLuaParameters(kMapBuilderServerLua);
|
||||
auto map_builder_server_options =
|
||||
CreateMapBuilderServerOptions(map_builder_server_parameters.get());
|
||||
auto map_builder =
|
||||
cartographer::common::make_unique<cartographer::mapping::MapBuilder>(
|
||||
map_builder_server_options.map_builder_options());
|
||||
server_ = cartographer::common::make_unique<MapBuilderServer>(
|
||||
map_builder_server_options);
|
||||
map_builder_server_options, std::move(map_builder));
|
||||
EXPECT_TRUE(server_ != nullptr);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ MapBuilderServer::MapBuilderContext::MapBuilderContext(
|
|||
|
||||
cartographer::mapping::MapBuilder&
|
||||
MapBuilderServer::MapBuilderContext::map_builder() {
|
||||
return map_builder_server_->map_builder_;
|
||||
return *map_builder_server_->map_builder_;
|
||||
}
|
||||
|
||||
cartographer::common::BlockingQueue<
|
||||
|
@ -66,13 +66,14 @@ MapBuilderServer::MapBuilderContext::
|
|||
void MapBuilderServer::MapBuilderContext::AddSensorDataToTrajectory(
|
||||
const SensorData& sensor_data) {
|
||||
sensor_data.sensor_data->AddToTrajectoryBuilder(
|
||||
map_builder_server_->map_builder_.GetTrajectoryBuilder(
|
||||
map_builder_server_->map_builder_->GetTrajectoryBuilder(
|
||||
sensor_data.trajectory_id));
|
||||
}
|
||||
|
||||
MapBuilderServer::MapBuilderServer(
|
||||
const proto::MapBuilderServerOptions& map_builder_server_options)
|
||||
: map_builder_(map_builder_server_options.map_builder_options()) {
|
||||
const proto::MapBuilderServerOptions& map_builder_server_options,
|
||||
std::unique_ptr<cartographer::mapping::MapBuilder> map_builder)
|
||||
: map_builder_(std::move(map_builder)) {
|
||||
framework::Server::Builder server_builder;
|
||||
server_builder.SetServerAddress(map_builder_server_options.server_address());
|
||||
server_builder.SetNumGrpcThreads(
|
||||
|
|
|
@ -74,7 +74,8 @@ class MapBuilderServer {
|
|||
friend MapBuilderContext;
|
||||
|
||||
MapBuilderServer(
|
||||
const proto::MapBuilderServerOptions& map_builder_server_options);
|
||||
const proto::MapBuilderServerOptions& map_builder_server_options,
|
||||
std::unique_ptr<cartographer::mapping::MapBuilder> map_builder);
|
||||
|
||||
// Starts the gRPC server and the SLAM thread.
|
||||
void Start();
|
||||
|
@ -105,7 +106,7 @@ class MapBuilderServer {
|
|||
bool shutting_down_ = false;
|
||||
std::unique_ptr<std::thread> slam_thread_;
|
||||
std::unique_ptr<framework::Server> grpc_server_;
|
||||
cartographer::mapping::MapBuilder map_builder_;
|
||||
std::unique_ptr<cartographer::mapping::MapBuilder> map_builder_;
|
||||
cartographer::common::BlockingQueue<std::unique_ptr<SensorData>>
|
||||
sensor_data_queue_;
|
||||
cartographer::common::Mutex local_slam_subscriptions_lock_;
|
||||
|
|
|
@ -34,7 +34,11 @@ void Run(const std::string& configuration_directory,
|
|||
proto::MapBuilderServerOptions map_builder_server_options =
|
||||
LoadMapBuilderServerOptions(configuration_directory,
|
||||
configuration_basename);
|
||||
MapBuilderServer map_builder_server(map_builder_server_options);
|
||||
auto map_builder =
|
||||
cartographer::common::make_unique<cartographer::mapping::MapBuilder>(
|
||||
map_builder_server_options.map_builder_options());
|
||||
MapBuilderServer map_builder_server(map_builder_server_options,
|
||||
std::move(map_builder));
|
||||
map_builder_server.Start();
|
||||
map_builder_server.WaitForShutdown();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue