Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(autoware_motion_velocity_obstacle_velocity_limiter_module): fix bugprone-exception-escape #9779

Merged
merged 3 commits into from
Dec 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "../src/types.hpp"

#include <chrono>
#include <iostream>
#include <random>
#include <vector>

Expand Down Expand Up @@ -55,45 +56,53 @@

int main()
{
Obstacles obstacles;
std::vector<polygon_t> polygons;
polygons.reserve(100);
for (auto i = 0; i < 100; ++i) {
polygons.push_back(random_polygon());
}
for (auto nb_lines = 1lu; nb_lines < 1000lu; nb_lines += 10) {
obstacles.lines.push_back(random_line());
obstacles.points.clear();
for (auto nb_points = 1lu; nb_points < 1000lu; nb_points += 10) {
obstacles.points.push_back(random_point());
const auto rtt_constr_start = std::chrono::system_clock::now();
CollisionChecker rtree_collision_checker(obstacles, 0, 0);
const auto rtt_constr_end = std::chrono::system_clock::now();
const auto naive_constr_start = std::chrono::system_clock::now();
CollisionChecker naive_collision_checker(obstacles, nb_points + 1, nb_lines * 100);
const auto naive_constr_end = std::chrono::system_clock::now();
const auto rtt_check_start = std::chrono::system_clock::now();
for (const auto & polygon : polygons)
// cppcheck-suppress unreadVariable
const auto rtree_result = rtree_collision_checker.intersections(polygon);
const auto rtt_check_end = std::chrono::system_clock::now();
const auto naive_check_start = std::chrono::system_clock::now();
for (const auto & polygon : polygons)
// cppcheck-suppress unreadVariable
const auto naive_result = naive_collision_checker.intersections(polygon);
const auto naive_check_end = std::chrono::system_clock::now();
const auto rtt_constr_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_constr_end - rtt_constr_start);
const auto naive_constr_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_constr_end - naive_constr_start);
const auto rtt_check_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_check_end - rtt_check_start);
const auto naive_check_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_check_end - naive_check_start);
std::printf(
"%lu, %lu, %ld, %ld, %ld, %ld\n", nb_lines, nb_points, rtt_constr_time.count(),
rtt_check_time.count(), naive_constr_time.count(), naive_check_time.count());
try {
Obstacles obstacles;
std::vector<polygon_t> polygons;
polygons.reserve(100);

Check warning on line 62 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L62

Added line #L62 was not covered by tests
for (auto i = 0; i < 100; ++i) {
polygons.push_back(random_polygon());

Check warning on line 64 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L64

Added line #L64 was not covered by tests
}
for (auto nb_lines = 1lu; nb_lines < 1000lu; nb_lines += 10) {
obstacles.lines.push_back(random_line());

Check warning on line 67 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L67

Added line #L67 was not covered by tests
obstacles.points.clear();
for (auto nb_points = 1lu; nb_points < 1000lu; nb_points += 10) {
obstacles.points.push_back(random_point());
const auto rtt_constr_start = std::chrono::system_clock::now();
CollisionChecker rtree_collision_checker(obstacles, 0, 0);
const auto rtt_constr_end = std::chrono::system_clock::now();
const auto naive_constr_start = std::chrono::system_clock::now();
CollisionChecker naive_collision_checker(obstacles, nb_points + 1, nb_lines * 100);
const auto naive_constr_end = std::chrono::system_clock::now();
const auto rtt_check_start = std::chrono::system_clock::now();

Check warning on line 77 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L70-L77

Added lines #L70 - L77 were not covered by tests
for (const auto & polygon : polygons)
// cppcheck-suppress unreadVariable
const auto rtree_result = rtree_collision_checker.intersections(polygon);
const auto rtt_check_end = std::chrono::system_clock::now();
const auto naive_check_start = std::chrono::system_clock::now();

Check warning on line 82 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L80-L82

Added lines #L80 - L82 were not covered by tests
for (const auto & polygon : polygons)
// cppcheck-suppress unreadVariable
const auto naive_result = naive_collision_checker.intersections(polygon);
const auto naive_check_end = std::chrono::system_clock::now();

Check warning on line 86 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L85-L86

Added lines #L85 - L86 were not covered by tests
const auto rtt_constr_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_constr_end - rtt_constr_start);
const auto naive_constr_time = std::chrono::duration_cast<std::chrono::nanoseconds>(
naive_constr_end - naive_constr_start);
const auto rtt_check_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_check_end - rtt_check_start);
const auto naive_check_time =
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_check_end - naive_check_start);
std::printf(
"%lu, %lu, %ld, %ld, %ld, %ld\n", nb_lines, nb_points, rtt_constr_time.count(),
rtt_check_time.count(), naive_constr_time.count(), naive_check_time.count());
}

Check warning on line 98 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L98

Added line #L98 was not covered by tests
}
} catch (const std::exception & e) {
std::cerr << "Exception in main(): " << e.what() << std::endl;

Check warning on line 101 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L100-L101

Added lines #L100 - L101 were not covered by tests
return {};
} catch (...) {

Check warning on line 103 in planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

View check run for this annotation

Codecov / codecov/patch

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp#L103

Added line #L103 was not covered by tests
std::cerr << "Unknown exception in main()" << std::endl;
return {};
}
return 0;
}
Loading