Skip to content

fix(cie_thread_configurator): address misc code quality issues#1277

Open
atsushi421 wants to merge 4 commits intomainfrom
fix/cie-thread-configurator-code-quality
Open

fix(cie_thread_configurator): address misc code quality issues#1277
atsushi421 wants to merge 4 commits intomainfrom
fix/cie-thread-configurator-code-quality

Conversation

@atsushi421
Copy link
Copy Markdown
Collaborator

@atsushi421 atsushi421 commented Apr 22, 2026

Description

Port code quality fixes from upstream callback_isolated_executor#51, plus additional cleanups:

  • Add inline to sched_setattr() in header: Prevents ODR violation if sched_deadline.hpp is included from multiple translation units.
  • Zero-initialize ThreadConfig members: domain_id, priority, runtime, period, and deadline now have default initializers to avoid uninitialized reads.
  • Reject unknown scheduling policies at YAML load time: The policy string is validated when loading the config so that typos (e.g. SCHED_OTEHR) cause an immediate std::runtime_error at startup.
  • Add else error path in issue_syscalls(): An unrecognized policy that somehow reaches issue_syscalls() now returns false and logs an error instead of silently succeeding with only CPU affinity applied.
  • Unify policy map: Replace three separate per-branch static std::unordered_map instances with a single file-scope policy_to_sched_const map in an anonymous namespace, using .at() for safe lookup.
  • Rename map to snake_case: kPolicyToSchedConstpolicy_to_sched_const to follow the project's naming convention.
  • Fix trailing comma in cpuset.cpus: set_affinity_by_cgroup() now writes "0,1,2" instead of "0,1,2," for canonical cpuset format.
  • Improve error log labels: Replace id= with thread= in error messages for clarity.

Related links

How was this PR tested?

  • Autoware (required)
  • bash scripts/test/e2e_test_1to1.bash (required)
  • bash scripts/test/e2e_test_2to2.bash (required)
  • kunit tests (required when modifying the kernel module)
  • bash scripts/test/run_requires_kernel_module_tests.bash (required)
  • sample application

Notes for reviewers

Version Update Label (Required)

Please add exactly one of the following labels to this PR:

  • need-major-update: User API breaking changes
  • need-minor-update: Internal API breaking changes (heaphook/kmod/agnocastlib compatibility)
  • need-patch-update: Bug fixes and other changes

Important notes:

  • If you need need-major-update or need-minor-update, please include this in the PR title as well.
    • Example: fix(foo)[needs major version update]: bar or feat(baz)[needs minor version update]: qux
  • After receiving approval from reviewers, add the run-build-test label. The PR can only be merged after the build tests pass.

See CONTRIBUTING.md for detailed versioning rules.

Port code quality fixes from upstream callback_isolated_executor#51:
- Add `inline` to `sched_setattr()` in header to prevent ODR violation
- Zero-initialize `ThreadConfig` members to avoid uninitialized reads
- Reject unknown scheduling policies at YAML load time
- Return `false` from `issue_syscalls()` for unrecognized policy strings
- Fix trailing comma in `set_affinity_by_cgroup()` cpuset.cpus output

Signed-off-by: atsushi421 <atsushi.yano.2@tier4.jp>
… lookup

- Zero-initialize domain_id member for consistency with other ThreadConfig fields
- Use count() instead of find()==end() for cleaner set membership checks

Signed-off-by: atsushi421 <atsushi.yano.2@tier4.jp>
@atsushi421 atsushi421 requested a review from Copilot April 22, 2026 21:57
@atsushi421 atsushi421 added the need-patch-update Bug fixes and other changes - requires PATCH version update label Apr 22, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Ports upstream code-quality and correctness fixes into agnocast_cie_thread_configurator, improving config validation and reducing subtle runtime/ODR issues.

Changes:

  • Validate scheduling policy strings at YAML load time and reject unknown policies early.
  • Fix cpuset.cpus formatting to avoid a trailing comma.
  • Add inline to sched_setattr() and default-initialize ThreadConfig fields to prevent ODR/uninitialized-read issues.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/agnocast_cie_thread_configurator/src/thread_configurator_node.cpp Adds policy validation, improves unknown-policy handling in syscalls, and fixes cpuset CPU list formatting.
src/agnocast_cie_thread_configurator/include/agnocast_cie_thread_configurator/thread_configurator_node.hpp Default-initializes ThreadConfig members to avoid uninitialized reads.
src/agnocast_cie_thread_configurator/include/agnocast_cie_thread_configurator/sched_deadline.hpp Marks sched_setattr() as inline to prevent ODR violations across TUs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/agnocast_cie_thread_configurator/src/thread_configurator_node.cpp Outdated
Comment thread src/agnocast_cie_thread_configurator/src/thread_configurator_node.cpp Outdated
…s and log labels

Signed-off-by: atsushi421 <atsushi.yano.2@tier4.jp>
Signed-off-by: atsushi421 <atsushi.yano.2@tier4.jp>
@atsushi421 atsushi421 marked this pull request as ready for review April 22, 2026 22:09
@kobayu858 kobayu858 added the run-build-test Run build-test in CI label Apr 23, 2026
@github-actions
Copy link
Copy Markdown

Coverage Report (jazzy)
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/callback_group_info__struct.hpp
                                               6       6   100%
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/callback_group_info__traits.hpp
                                               2       0     0%   110,112
src/agnocastlib/include/agnocast/agnocast.hpp
                                              18      16    88%   257,280
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              25      25   100%
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              48      19    39%   47,55-57,61,75-76,78-79,82-83,86,89-92,94-97,102-105,107-110,114
src/agnocastlib/include/agnocast/agnocast_epoll_update_dispatcher.hpp
                                               8       8   100%
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   44
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              66      54    81%   101,113,143,146-147,149,153,158-160,222-223
src/agnocastlib/include/agnocast/agnocast_service.hpp
                                              36       0     0%   55,58-59,61,75,81,83,86-100,102,104-105,107,109-110,112,119,121-124,126-127
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              97      93    95%   305,310,322,327
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              60       9    15%   81,98-99,104,107-110,112,123,128-132,136,138-139,142-143,145,147-150,152-153,159,162,164,166-167,170,173-174,181,184,187,189,191-192,195,198-199,205,207,215-219
src/agnocastlib/include/agnocast/agnocast_timer.hpp
                                              15      12    80%   37,80,96
src/agnocastlib/include/agnocast/agnocast_tracepoint_wrapper.h
                                              13       7    53%   15,32,52,59,70,83
src/agnocastlib/include/agnocast/agnocast_utils.hpp
                                              15       8    53%   20-22,28,32,36,41
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_ipc_event_loop_base.hpp
                                             114       0     0%   51,82,84-85,88-95,97,99-100,102,104-105,107,109-113,115-116,118-122,124-125,128-130,134,137,139-140,142,144,146-147,149,151-152,154,156-157,159,162-163,165-167,169,171,173-175,178-180,182,184-187,189-190,193,195-196,199,202,204-206,208-209,211,213,215,218-220,222-224,227,229,232-234,237-238,241,244,246-248,250,253-255,257,260-262,265,267-268,272
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_node.hpp
                                             155       8     5%   46,48,53,55-56,59-61,70,72-73,92,94-95,104,106-107,110,123,126,130,132-135,138-140,145,147-151,153,155,173,176,181-183,186-188,193-199,201,203-205,207,211,214-216,219,222-224,227,231-234,236-237,240,242-243,246,249-250,252-260,263-264,269,273,276,280-281,283-284,287-290,293-294,296-302,306,308-310,313-316,318,321,323-325,327-329,332,335,337,339-340,342-345,347-349,352,355,357,359-363,365-367
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_utils.hpp
                                               1       0     0%   21
src/agnocastlib/include/agnocast/bridge/performance/agnocast_performance_bridge_ipc_event_loop.hpp
                                               1       0     0%   14
src/agnocastlib/include/agnocast/bridge/standard/agnocast_standard_bridge_ipc_event_loop.hpp
                                               1       0     0%   14
src/agnocastlib/include/agnocast/cie_client_utils.hpp
                                               2       2   100%
src/agnocastlib/include/agnocast/message_filters/message_event.hpp
                                              11      11   100%
src/agnocastlib/include/agnocast/message_filters/parameter_adapter.hpp
                                               6       6   100%
src/agnocastlib/include/agnocast/message_filters/pass_through.hpp
                                              13      13   100%
src/agnocastlib/include/agnocast/message_filters/signal1.hpp
                                              22      22   100%
src/agnocastlib/include/agnocast/message_filters/signal9.hpp
                                              71      65    91%   287,289-292,294
src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp
                                              11       7    63%   57,59,61-62
src/agnocastlib/include/agnocast/message_filters/subscriber.hpp
                                              53       0     0%   21,23-25,38,77,81-82,94,99-100,155,159-161,163,166-168,200,212,216-219,231,235-236,249,253-256,269,273,275-282,284,290,292-296,299,305,330
src/agnocastlib/include/agnocast/message_filters/sync_policies/approximate_time.hpp
                                             369     320    86%   138,148,151,154-155,165,168,170,176,278-300,334-350
src/agnocastlib/include/agnocast/message_filters/sync_policies/exact_time.hpp
                                              61      60    98%   188
src/agnocastlib/include/agnocast/message_filters/synchronizer.hpp
                                             113     101    89%   134,136-138,192,195,197-199,365,367-368
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   25,27
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                              18      10    55%   75,83,141,143,424,428,457,462
src/agnocastlib/include/agnocast/node/node_interfaces/node_base.hpp
                                               1       1   100%
src/agnocastlib/include/agnocast/node/node_interfaces/node_clock.hpp
                                               1       1   100%
src/agnocastlib/include/agnocast/node/node_interfaces/node_logging.hpp
                                               1       1   100%
src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp
                                               1       1   100%
src/agnocastlib/include/agnocast/node/node_interfaces/node_services.hpp
                                               1       1   100%
src/agnocastlib/include/agnocast/node/node_interfaces/node_topics.hpp
                                               1       1   100%
src/agnocastlib/src/agnocast.cpp             275       5     1%   22,24,53,56,58-64,68-70,72,74-79,81,83-88,91-96,100-101,105-109,112-113,115,117,120,122-123,125,130,132-134,136,140,142-144,146-147,150,152-153,155,157,159-162,165-169,173,175-176,181-182,185,187,190,192,194-202,205-207,211-212,215,217,219-223,225-231,233,235-236,238,241-247,249-251,253-257,267,269-270,273-275,277-278,280-282,284-285,288-289,292-293,296-299,303-304,307-309,311-312,314,316-317,320,323,325-326,329,332,336-337,340,343,347,349-350,352-353,355,357-359,362-363,369,372-373,378,381,385,387-390,393-395,397-399,405-408,410-411,414-419,422-423,425-426,428-429,431,434-435,438-439,442,446,449-451,454-457,459,461,464-468,471-473,476-480,483-485,488-489,491-494,496-498,501-503,507-510,513-516,523-524
src/agnocastlib/src/agnocast_callback_info.cpp
                                              61      50    82%   46-48,53-56,99,131-132,140
src/agnocastlib/src/agnocast_callback_isolated_executor.cpp
                                             255     197    77%   22-24,26,39-41,44-46,49-50,55,84-87,109,133,153,157,201,203-204,207-208,210-211,213,215,220-222,224,264,283,294,308-310,312,329,333,336-337,345,347-348,350,373,375-376,378,402,413,415,436,439
src/agnocastlib/src/agnocast_client.cpp       37       0     0%   16,18,20-28,31-32,34,36,38-39,42-43,46,49,52-54,56,58,62,67-68,70-73,75-76,79-80
src/agnocastlib/src/agnocast_component_container.cpp
                                              25       0     0%   7,9-10,13,15,20-22,25,27,30,32-34,36-45,47
src/agnocastlib/src/agnocast_component_container_cie.cpp
                                             142       0     0%   23-24,26,28,47,49,51-54,56,59-62,93,95,97-98,101-103,105-106,110-111,113,116-119,121,123-126,128,130,132-133,135,137-138,140,142-143,145,147,149,152,156-157,159,161-165,167-170,172-174,177-178,181-183,185-187,189,191,193-197,200,202-205,208-209,211,213,215,217-219,221-224,227-228,231-233,236,238-239,241,243-246,249-250,253-254,256,258,260-261,264-266,270,272-273,276,278,283-285,288,290,292-293,295-303
src/agnocastlib/src/agnocast_component_container_mt.cpp
                                              32       0     0%   9,11-12,17,19,24-26,29,31,33-35,38-39,41,44-45,47-49,51-60,62
src/agnocastlib/src/agnocast_epoll.cpp       105      24    22%   21-24,27,39,44-46,48,50-55,57-60,62-63,66,68-70,72-74,76,78,80,82-86,88,93-95,98-100,102,104-109,111-114,116-117,119-122,126-129,133-134,136-140,142,147-150,161,174,178-179
src/agnocastlib/src/agnocast_epoll_update_dispatcher.cpp
                                              31      30    96%   56
src/agnocastlib/src/agnocast_executor.cpp
                                              48      45    93%   22-23,83
src/agnocastlib/src/agnocast_multi_threaded_executor.cpp
                                              92      70    76%   19,22,36-38,48-49,52-53,56-57,60-61,64-65,69,76-77,86-88,166
src/agnocastlib/src/agnocast_publisher.cpp
                                              89       0     0%   14,16,19,21-22,24,26-27,30-31,33-34,36,40,42-51,54,57,62,64-67,70-72,74-77,80,82-87,91,93-95,98,102-105,109,113-114,122-127,131,134-135,139,142,144-149,152,154-155,158,160-161,164,167,169-174,177
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              73      44    60%   22,33-35,39,48-50,97-103,105,107-109,116,120,124-127,130-131,133-134
src/agnocastlib/src/agnocast_smart_pointer.cpp
                                              10       7    70%   14-16
src/agnocastlib/src/agnocast_subscription.cpp
                                              63       0     0%   7-8,10-11,13-15,17-18,20,24-37,40,43,45-50,53,55-56,59,61-62,65,68,72-77,79-82,86-87,89,91-92,94,97-98,102-103,107,109,111
src/agnocastlib/src/agnocast_timer.cpp         3       3   100%
src/agnocastlib/src/agnocast_timer_info.cpp
                                             144      49    34%   25,27,29-31,34-35,37,39,43-44,48,50,52-54,57-58,60-62,64,67-70,72,74,76,78-79,81-83,85,90,93,95-98,103,106-107,119-121,123,125-129,131-136,138-141,149,163-164,172-173,181-182,184-185,219-220,222-223,228-229,246,250-252,255,257,259,261,264-265,267,270,272-273,276,278-279
src/agnocastlib/src/agnocast_tracepoint_wrapper.c
                                              13       7    53%   34,82,114,124,146,174
src/agnocastlib/src/agnocast_utils.cpp        54      37    68%   19,70,82-84,88,90,92,95,97,100,103,106,108-109,112,114
src/agnocastlib/src/bridge/agnocast_bridge_utils.cpp
                                             102       0     0%   14,16-18,21-22,24-25,27-28,30-31,34-36,38,40-42,44,46,48-50,52-54,57,59-61,63,65,68-71,74,76-80,83-86,89,92,94-98,101-103,106,109,111-112,115,117-119,121-123,125,128,130-131,134,136-138,140-142,144,147,149-150,153-155,157-161,163,165-166,169-171,173-177
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_ipc_event_loop.cpp
                                               4       0     0%   12,16,22,24
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_loader.cpp
                                              82       0     0%   14,16,18,20-22,25-26,28,32-34,37-38,41,45-47,50-51,54,56-58,61,64-65,68-81,83,87-89,91,93-94,96,98-100,103,105-106,110-113,118-120,122,125-126,128,131-132,134-136,139-140,142-144,147,150-151,156,159-160
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_manager.cpp
                                             198       0     0%   19-22,24-25,28-31,33,35-36,39-40,43-44,46,48,50,52-53,55,57-58,60-63,66-69,71,73,75-76,81-82,84,86-89,91-95,97,99,101-104,108,112-113,117,120-122,124,126-127,129,131-132,134-136,138,140,142-144,146-148,152,154-155,157-158,160,162-163,165,167-173,176-177,179-180,183-185,187,189-190,193,197-203,206-207,209-210,213-215,217,219-220,223,228,230-232,234,236-237,239,242,244,246-249,252-253,257,260-262,265-267,270,272-273,276-278,281,284,288-289,292-296,299-300,304,306-309,311-312,315-318,321,323-324,327,331-332,335-337,340-341,344,347-349,354-355,357,359-362,364
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_ipc_event_loop.cpp
                                               4       0     0%   13,17,23,25
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_loader.cpp
                                              91       0     0%   18,20,22,24-25,27,31,33-35,38,41-42,44,49-51,54,57-59,61-62,64-67,70,73,75-76,78,81-82,85-88,90,93,96,98,104-107,109-111,113,117-119,121,124-125,127-128,130,133,137-140,142-143,145-146,148,151,154-155,157-158,160,162-164,167-169,171-174,176-178,180-181,185
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_manager.cpp
                                             240       0     0%   16-20,22-23,26-29,31,33-34,36,38-40,42-43,45,48-50,52-53,55,57,59,61-62,64,66-67,69-71,74-77,79,81,83-84,89-90,92,94-97,99-103,105,107-110,112,114,116,118-119,121-123,125,127,131-133,136-139,141,144,147-148,150,152,154-155,158,161,163,166-167,169-170,174,176,178-180,182-183,187-188,190,192-195,197-198,201-203,207-208,212,214,216-217,220-222,224,226,228-230,233,236-237,240-241,244-245,247,250-251,254,257-260,262-265,269-270,272-274,276,278,280-282,284,286-288,292,294-300,304-307,312-314,318,321,324,326-327,329-331,335,337-342,345-347,349-350,352-354,358-362,370-372,376-378,380,382-384,387-388,392-393,395-396,399-401,404-406,408,410,412-414,416-418,421,423,427,429-430,432-433
src/agnocastlib/src/cie_client_utils.cpp      65      47    72%   28,41-43,100,102,105,107-108,113-115,127,132-136
src/agnocastlib/src/node/agnocast_arguments.cpp
                                              79      37    46%   29,31,36,38-39,41,43-46,48,51-52,54-56,58,61,63,65-70,72,76,88,95,104,124,126-128,131,133-135,139-140,145,149
src/agnocastlib/src/node/agnocast_context.cpp
                                              30       0     0%   15,17-18,22-25,28,32-36,38,41-43,45,47-49,51,53-55,61-63,65,67
src/agnocastlib/src/node/agnocast_node.cpp
                                              20      20   100%
src/agnocastlib/src/node/agnocast_only_callback_isolated_executor.cpp
                                             149       0     0%   17-18,20,22,24-28,30,32,34-37,40,44,47,50-53,56-58,61-62,65-68,71-74,76-78,80-81,85,88-89,92-93,95,97-98,100,103-105,107-109,112-114,116-117,119,122,124-126,128-129,131-132,137,140-144,147-152,154-156,158-159,162-164,166-168,170,172,178,180-184,186-192,195,197,200-208,210,212,217,221-222,224-225,228-229,232-233,235,237-239,241-242,246,249-251,253-258,260,262,265-266
src/agnocastlib/src/node/agnocast_only_executor.cpp
                                             228       0     0%   19-24,26-28,31-34,37,40-46,49-51,53,56,58-61,63-64,66-69,71-72,74-77,79-81,83-86,88,91,93-94,97-98,100-101,105,108,111,113-116,119-122,125-126,128,131-132,135,137,139-140,142,144,146-149,151,153,161-165,167,169-173,176-178,181,186-187,189,194-200,202-205,207-208,210-211,213,215-221,223-224,226-227,230,232-236,238-239,242,244-248,250-251,253,256-260,262-265,267,269-273,275-278,280-282,285,290,292-293,295,301-303,306-307,309-315,317-319,322,327-328,330-331,333,335-336,338,344-347,350,352-356,358,361-364,367-372,374-376,380,382-383,385,387-388
src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp
                                              44       0     0%   10-16,18,21,23,25-28,31,33,35-37,40,42-43,45,47,49-55,59,61-62,68-72,75,78-80,82
src/agnocastlib/src/node/agnocast_only_single_threaded_executor.cpp
                                              29       0     0%   8-9,11-13,19,22,24,26-29,32,34-40,44-48,51-52,54-55
src/agnocastlib/src/node/agnocast_parameter_service.cpp
                                              77       0     0%   27,29,38,40-42,46-48,50-56,58-60,64-72,74-76,79-80,83-89,91-92,94-96,99-103,106-114,116-118,122-128,130-132,135-139
src/agnocastlib/src/node/agnocast_signal_handler.cpp
                                              45       0     0%   23,25-26,30-31,34,37-38,40-42,45-47,51,53-54,56-59,63-65,67-69,71,73-78,81,83,86-87,89,91-95,98
src/agnocastlib/src/node/node_interfaces/node_base.cpp
                                             181     104    57%   33,42,56-59,61-62,74-77,79-80,124,126,129,133,136,140,143,147,150,154,181,187,189-191,198,200,202-205,207-209,222,224,233,238,242,247,250,254,269-272,274,283-284,286,299-301,304-305,308-309,321-325,339-343,345,353,368,370,373,375
src/agnocastlib/src/node/node_interfaces/node_clock.cpp
                                               7       5    71%   16,18
src/agnocastlib/src/node/node_interfaces/node_logging.cpp
                                               8       2    25%   12,14,17,19,25,28
src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
                                             420      89    21%   38-42,44,46,48,50,58,62-67,69,71-72,74,86,92,101,112-114,117,126,128,131,133-136,144-147,149-152,154-155,157-158,160-162,166-169,171-174,176-177,179-181,183-185,188,190,193,197-199,212-214,217,230-231,235,239,250,256,268,284,290-292,294,296-300,309,321,323-325,337,344,365,369-370,372,374,377,380,383-386,388,390-391,393-394,396,399,401,403,405,408-409,418,421-422,424-427,429-430,432,435-436,438,444-446,449-450,454-455,457,459,462,466,470-473,481-482,485-487,490,492,494-495,498,505-511,514,516,519-524,526,532-540,542,548,552,554-555,558-559,563,565,567,570,574-575,577-578,580,589-590,592,595-596,598-600,602-603,605,607,609-610,612,614,616-621,623-624,626,629,631-632,634,637-639,643-644,646,649-651,653-662,668-669,672-673,675,678-680,682-687,689,695-696,699-700,702,705-706,708,710-712,715,717-721,723-725,727-729,731-734,737-738,743-750,752,754-755,759,764-765,767-768,770-772,774,777-778,780,782-784,786,788,790,793,800,802,806,808,811,814,817,820
src/agnocastlib/src/node/node_interfaces/node_services.cpp
                                               8       2    25%   12,18,21,28,31,33
src/agnocastlib/src/node/node_interfaces/node_time_source.cpp
                                             101      49    48%   49,53-54,57,60,81,92,94,96,100,103-104,115,118-119,125,132-134,137-139,145,149,151-152,154,157-158,163,165,167-168,172,175-179,183-187,193-195,200,202-203,206-207
src/agnocastlib/src/node/node_interfaces/node_topics.cpp
                                              16       4    25%   18,20,23,32,35,42,45,54,57,64,67,71
------------------------------------------------------------------------------
TOTAL                                       5224    1817    34%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

Coverage Report (humble)
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/callback_group_info__struct.hpp
                                               6       6   100%   
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/callback_group_info__traits.hpp
                                               2       0     0%   107,109
src/agnocastlib/include/agnocast/agnocast.hpp
                                              18      16    88%   257,280
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              25      25   100%   
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              48      19    39%   47,55-57,61,75-76,78-79,82-83,86,89-92,94-97,102-105,107-110,114
src/agnocastlib/include/agnocast/agnocast_epoll_update_dispatcher.hpp
                                               8       8   100%   
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   44
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              58      47    81%   101,112-113,143,147,149,158-160,222-223
src/agnocastlib/include/agnocast/agnocast_service.hpp
                                              34       0     0%   55,58-59,61,75,81,83,86-100,104-105,107,109-110,112,119,121-124,126
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              97      93    95%   305,310,322,327
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              52       9    17%   98,104,107-110,123,128-132,136,138-139,142-143,145,147-150,152,159,162,164,166-167,170,173-174,184,187,189,191-192,195,198-199,207,215-216,218
src/agnocastlib/include/agnocast/agnocast_timer.hpp
                                              14      11    78%   37,80,96
src/agnocastlib/include/agnocast/agnocast_tracepoint_wrapper.h
                                              13       7    53%   15,32,52,59,70,83
src/agnocastlib/include/agnocast/agnocast_utils.hpp
                                              15       8    53%   20-22,28,32,36,41
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_ipc_event_loop_base.hpp
                                             102       0     0%   51,82,84-85,88-93,97,99,102,104-105,107,109-113,115-116,118-122,124-125,128-130,134,137,139-140,144,146,149,151,154,156,159,162-163,165-167,171,173-175,178-179,182,184-187,189-190,193,195-196,199,202,204-206,208-209,213,215,218-220,222-224,229,232-234,237-238,241,244,246-248,250,253-255,257,260-262,265,267-268
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_node.hpp
                                             142       8     5%   46,48,53,55-56,59-61,70,72,92,94,104,106,110,123,130,132-135,138-140,145,147-151,155,173,181-183,186-188,193-199,201,203-204,207,211,214-215,219,222-223,227,231-234,236-237,240,242-243,246,249-250,252-260,263-264,269,273,276,280-281,283-284,287-290,293-294,296-302,308-310,313-316,318,321,323-325,327-328,332,335,337,339-340,342-345,347-348,352,355,357,359-363,365-366
src/agnocastlib/include/agnocast/bridge/agnocast_bridge_utils.hpp
                                               1       0     0%   21
src/agnocastlib/include/agnocast/bridge/performance/agnocast_performance_bridge_ipc_event_loop.hpp
                                               1       0     0%   14
src/agnocastlib/include/agnocast/bridge/standard/agnocast_standard_bridge_ipc_event_loop.hpp
                                               1       0     0%   14
src/agnocastlib/include/agnocast/cie_client_utils.hpp
                                               2       2   100%   
src/agnocastlib/include/agnocast/message_filters/message_event.hpp
                                              11      11   100%   
src/agnocastlib/include/agnocast/message_filters/parameter_adapter.hpp
                                               6       6   100%   
src/agnocastlib/include/agnocast/message_filters/pass_through.hpp
                                              12      12   100%   
src/agnocastlib/include/agnocast/message_filters/signal1.hpp
                                              22      22   100%   
src/agnocastlib/include/agnocast/message_filters/signal9.hpp
                                              70      65    92%   287,289-292
src/agnocastlib/include/agnocast/message_filters/simple_filter.hpp
                                              10       7    70%   57,59,61
src/agnocastlib/include/agnocast/message_filters/subscriber.hpp
                                              42       0     0%   21,23-25,38,77,81,94,99,155,160,163,167,200,212,216-218,231,235,249,253-255,269,273,275-282,290,292-296,305,330
src/agnocastlib/include/agnocast/message_filters/sync_policies/approximate_time.hpp
                                             363     314    86%   138,148,151,154-155,165,168,170,176,278-300,334-350
src/agnocastlib/include/agnocast/message_filters/sync_policies/exact_time.hpp
                                              61      60    98%   188
src/agnocastlib/include/agnocast/message_filters/synchronizer.hpp
                                             101      92    91%   134,136-137,192,195,197-198,365,367
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   25,27
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                              18      10    55%   75,83,141,143,424,428,457,462
src/agnocastlib/include/agnocast/node/node_interfaces/node_base.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_clock.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_logging.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_parameters.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_services.hpp
                                               1       1   100%   
src/agnocastlib/include/agnocast/node/node_interfaces/node_topics.hpp
                                               1       1   100%   
src/agnocastlib/src/agnocast.cpp             264       5     1%   22,24,53,56,58-64,68-69,72,74-75,77-79,81,83-88,91-96,100-101,105-109,112,115,117,120,122-123,130,132-136,140,142-147,150,152-153,157,159-162,165-169,173,175-176,181-182,185,187,190,192,194-202,205-207,211-212,215,217,219-220,223,225-229,231,235,238,241-247,249-250,253-255,257,267,269-270,273-275,277-278,280-282,284-285,288-289,292-293,296-299,303-304,307-309,311,314,316-317,320,323,325-326,329,332,336-337,340,343,347,349-350,352-353,355,357-359,362-363,369,372-373,378,381,385,387-390,393-395,397-399,405-408,410-411,414-419,422-423,425-426,428-429,431,434-435,438-439,442,446,449-451,454-457,459,461,464-468,471-473,476-480,483-485,488-489,491-494,496-498,501-503,507-510,513-516,523-524
src/agnocastlib/src/agnocast_callback_info.cpp
                                              61      51    83%   46-48,53-56,99,131-132
src/agnocastlib/src/agnocast_callback_isolated_executor.cpp
                                             253     199    78%   22-24,26,39-41,44-46,49,55,84-87,109,133,153,157,201,203-204,207-208,210-211,213,220-222,224,283,308-310,312,329,333,336-337,345,347-348,350,373,375-376,378,402,413,415,436,439
src/agnocastlib/src/agnocast_client.cpp       36       0     0%   16,18,20-28,31,34,36,38-39,42-43,46,49,52-54,56,58,62,67-68,70-73,75-76,79-80
src/agnocastlib/src/agnocast_component_container.cpp
                                              24       0     0%   7,9-10,13,15,20-22,25,27,30,32-34,36-44,47
src/agnocastlib/src/agnocast_component_container_cie.cpp
                                             129       0     0%   23-24,28,47,49,51-54,56,59-61,93,95,97-98,101-103,105-106,110,113,116-119,121,123-126,128,130,132-133,135,137-138,140,142-143,145,147,149,152,156-157,159,161-165,167-169,172-174,177-178,181-182,185-186,189,191,193-197,200,202-205,208,211,215,217-219,221-224,227-228,231-233,236,241,243-246,249-250,253,256,258,260-261,264-265,270,272-273,276,278,283-285,288,290,292-293,295-301,303
src/agnocastlib/src/agnocast_component_container_mt.cpp
                                              31       0     0%   9,11-12,17,19,24-26,29,31,33-35,38-39,41,44-45,47-49,51-59,62
src/agnocastlib/src/agnocast_epoll.cpp       100      24    24%   21-24,27,39,44-46,48,50-55,57-60,62,66,68-70,72-74,78,80,82-86,88,93-94,98-100,102,104-109,111-114,116,119-122,126-129,133-134,136-140,142,147-148,150,161,174,178-179
src/agnocastlib/src/agnocast_epoll_update_dispatcher.cpp
                                              31      30    96%   56
src/agnocastlib/src/agnocast_executor.cpp
                                              47      44    93%   22-23,98
src/agnocastlib/src/agnocast_multi_threaded_executor.cpp
                                              88      61    69%   19,22,36-38,47-49,51-53,55-57,59-61,63-65,69,76-77,86-88,166
src/agnocastlib/src/agnocast_publisher.cpp
                                              85       0     0%   14,16,19,21,24,26-27,30-31,33,36,40,42-51,54,57,62,64-67,70-72,74-77,80,82-87,91,93-95,98,102,104,109,113-114,122-127,131,134-135,139,142,144-149,152,154-155,158,160-161,164,167,169-174,177
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              70      39    55%   22,33-35,39,48-50,90-94,97-103,105,107,109,120,124-127,130-131,133
src/agnocastlib/src/agnocast_smart_pointer.cpp
                                              10       7    70%   14-16
src/agnocastlib/src/agnocast_subscription.cpp
                                              59       0     0%   7-8,10,13-15,17,20,24-37,40,43,45-50,53,55-56,59,61-62,65,68,72-77,79-82,86-87,89,91,94,97-98,102-103,109,111
src/agnocastlib/src/agnocast_timer.cpp         2       2   100%   
src/agnocastlib/src/agnocast_timer_info.cpp
                                             142      49    34%   25,27,29-31,34,37,39,43-44,48,50,52-54,57,60-62,64,67-70,74,76,78-79,81-83,85,90,93,95-98,103,106-107,119-121,123,125-129,131-136,138-140,149,162-164,172-173,181-185,219-223,228-229,246,250-252,255,257,259,261,264-265,267,270,272-273,276,278
src/agnocastlib/src/agnocast_tracepoint_wrapper.c
                                               7       7   100%   
src/agnocastlib/src/agnocast_utils.cpp        52      37    71%   19,82-84,90,92,95,97,100,103,106,108-109,112,114
src/agnocastlib/src/bridge/agnocast_bridge_utils.cpp
                                              99       0     0%   14,16-18,21-22,24-25,27-28,30-31,34-35,38,40-42,44,46,48-50,52-54,57,59-61,63,65,68-71,74,76-80,83-86,89,92,94-98,101-103,106,109,111-112,115,117-119,121-123,125,128,130-131,134,136-138,140-142,144,147,149-150,153-155,157-160,163,165-166,169-171,173-176
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_ipc_event_loop.cpp
                                               3       0     0%   12,16,22
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_loader.cpp
                                              74       0     0%   14,18,20-22,25,28,32-34,37-38,41,45-47,50-51,54,56-58,61,64-65,68-80,87-89,93,96,98-100,103,105-106,110-113,118-120,122,125,128,131-132,134-136,139-140,142-144,147,150-151,156,159
src/agnocastlib/src/bridge/performance/agnocast_performance_bridge_manager.cpp
                                             185       0     0%   19-22,24-25,28-30,33,35-36,39-40,43-44,48,50,52-53,55,57-58,60-63,66-69,73,75-76,81-82,84,86-89,91-92,94,97,99,101-104,108,112-113,117,120-122,124,126,129,131-132,134-136,140,142-144,146-148,152,154-155,157-158,160,165,167-173,176-177,179-180,183-185,187,189-190,193,197-203,206-207,209-210,213-215,217,219-220,223,228,230-232,234,236-237,239,244,246-249,252-253,257,260-262,265-267,270,272-273,276-278,281,284,288-289,292-296,299-300,304,306-309,311-312,315-318,321,323-324,327,331-332,335-337,340,344,347-349,354-355,357,359-361
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_ipc_event_loop.cpp
                                               3       0     0%   13,17,23
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_loader.cpp
                                              85       0     0%   18,22,24,27,31,33-35,38,41,44,49-51,54,57-58,61-62,64-66,70,73,75-76,78,81-82,85-88,90,93,96,98,104-107,109-111,113,117-119,121,124-125,127-128,130,133,137-140,142-143,145-146,148,151,154-155,157,160,162-164,167-169,171-174,176-178,180-181,185
src/agnocastlib/src/bridge/standard/agnocast_standard_bridge_manager.cpp
                                             222       0     0%   16-20,22-23,26-28,31,33-34,36,38-40,42-43,48-50,52-53,57,59,61-62,64,66-67,69-71,74-77,81,83-84,89-90,92,94-97,99-100,102,105,107-110,112,116,118-119,121-123,127,131-133,136-138,141,144,147-148,150,152,154-155,158,161,163,166-167,169-170,176,178-180,182-183,187-188,190,192-195,197-198,201-203,207-208,212,214,216-217,220,224,226,228-230,233,236-237,240-241,244,247,250-251,254,257-260,262-265,269-270,272-274,276,278,280-282,284,286-288,292,294-300,304-307,312-314,318,321,324,326-327,329-331,335,337-342,345-347,349-350,352-354,358-362,370-372,376,380,382-384,387-388,392-393,395-396,399-401,404-406,410,412-414,416-418,423,427,429-430,432
src/agnocastlib/src/cie_client_utils.cpp      63      47    74%   28,41-43,100,102,105,107-108,113-114,127,132-135
src/agnocastlib/src/node/agnocast_arguments.cpp
                                              76      37    48%   29,31,36,38,41,43-46,48,51-52,54-58,63,65-72,76,88,94-95,124,126-127,131,133-135,139,145
src/agnocastlib/src/node/agnocast_context.cpp
                                              27       0     0%   15,17-18,22-25,28,32-36,38,41-42,45,47-48,51,53-55,61-63,65
src/agnocastlib/src/node/agnocast_node.cpp
                                              20      20   100%   
src/agnocastlib/src/node/agnocast_only_callback_isolated_executor.cpp
                                             131       0     0%   17-18,22,24-27,32,34-37,40,44,47,50-53,56-58,61,65-68,71-74,76,78,80-81,85,87-89,92-93,95,97-100,103-104,107-109,112-114,116-117,119,122,124-126,128,131-132,137,140-144,147-152,154,158-159,162-164,166-168,170,178,180-183,186-188,190-192,197,200-201,203-207,212,217,221-222,224-225,228-229,232-233,237-239,241-242,246,249-251,253-254,256-258,262,265
src/agnocastlib/src/node/agnocast_only_executor.cpp
                                             208       0     0%   19-24,26-28,31-34,37,40-46,49-50,53,56,58-61,64,66-69,72,74-77,80,83-85,88,91,93-94,97-98,100-101,105,108,111,113-116,119-122,125-126,128,131,135,137,139-140,144,146-149,153,161-165,167,169-173,176-178,181,186,189,194-200,202-205,207-208,210,213,215-221,223-224,226,230,232-236,238,242,244-248,250,253,256-260,262-264,267,269-278,280-282,285,290,295,301-303,306-307,309-315,317-319,322,327-328,330,333,335,338,344-347,350,352-356,358,361-364,367-372,374-376,380,382,385,387
src/agnocastlib/src/node/agnocast_only_multi_threaded_executor.cpp
                                              41       0     0%   10-16,18,23,25-28,31,33,35-37,40,42-43,47,49-55,59,61-62,68-72,75,78-80
src/agnocastlib/src/node/agnocast_only_single_threaded_executor.cpp
                                              26       0     0%   8-9,11-13,19,24,26-29,32,34-40,44-48,51-52
src/agnocastlib/src/node/agnocast_parameter_service.cpp
                                              77       0     0%   27,29,38,40-42,44,46-48,50-53,55-56,58-60,62,64-69,71-72,74-76,78-80,83-87,89,91-92,94-96,98-103,106-111,113-114,116-118,120,122-125,127-128,130-132,134-138
src/agnocastlib/src/node/agnocast_signal_handler.cpp
                                              41       0     0%   23,25-26,30-31,34,37-38,40-42,45-47,51,53-54,56-59,63-65,67-68,71,73-78,83,86,89,91-95
src/agnocastlib/src/node/node_interfaces/node_base.cpp
                                             177     104    58%   33,42,56-58,61-62,74-76,79-80,124,126,129,131,133,136,138,140,143,145,147,150,152,154,181,187,189-190,198,200,202-205,208,222,224,231,233,238,242,247,250,254,269-272,274,283-284,286,299-301,304-305,308-309,321-325,339-343,345,353
src/agnocastlib/src/node/node_interfaces/node_clock.cpp
                                               7       5    71%   16,18
src/agnocastlib/src/node/node_interfaces/node_logging.cpp
                                               6       2    33%   12,14,17,19
src/agnocastlib/src/node/node_interfaces/node_parameters.cpp
                                             397      89    22%   38-42,44,46,58,62-67,69,71-72,74,86,91-92,100-101,112-114,116-117,126,128,131,133-135,144-147,149-152,154-155,157-158,160-162,166-169,171-174,176-177,179-181,183-185,190,193,197-198,212-214,217,230-231,235,250,256,284,290-292,294,296-299,309,321,323-325,337,344,365,369-370,372-374,377-378,380,383-385,388,390-391,393-396,399-401,403-405,408,418,421-422,424-426,429,432,435-436,438,444-446,449-450,454-455,457,459,462,465-466,470-473,481-482,485-487,490,492,494-495,498,505-511,514,516,519-524,526,532-540,542,548,552,554-555,558-559,563,565,567,570,574-575,577-578,580,589,592,595-596,598-600,602,605,607,609,612,614,616-621,623,626,629,631-632,634,637-639,643,646,649-651,653-662,668-669,672,675,678-680,682-687,689,695-696,699,702,705-706,708,710-712,715,717-721,723-725,727-729,731-732,734,737-738,743-750,754,761,764-765,767-768,770-771,774,777-778,780,782-784,786,790,793
src/agnocastlib/src/node/node_interfaces/node_services.cpp
                                              10       2    20%   12,17-18,21,26,28,31,33
src/agnocastlib/src/node/node_interfaces/node_time_source.cpp
                                              98      48    49%   49,53-54,57,60,81,92,94,96,100,103-104,115,118-119,125,132-134,137-139,145,149,151-152,154,157-158,163,165,167-168,172,175-179,183-186,193-195,200,202-203,206
src/agnocastlib/src/node/node_interfaces/node_topics.cpp
                                              21       4    19%   18,20,23,30,32,35,40,42,45,52,54,57,62,64,67,69,71
------------------------------------------------------------------------------
TOTAL                                       4956    1779    35%
------------------------------------------------------------------------------

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

need-patch-update Bug fixes and other changes - requires PATCH version update run-build-test Run build-test in CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants