Skip to content

feat: Agnocast CUDA IPC#1179

Open
sykwer wants to merge 19 commits intomainfrom
cuda-ipc
Open

feat: Agnocast CUDA IPC#1179
sykwer wants to merge 19 commits intomainfrom
cuda-ipc

Conversation

@sykwer
Copy link
Copy Markdown
Member

@sykwer sykwer commented Mar 13, 2026

Description

Documentation for Users

Related links

How was this PR tested?

bash scripts/sample_application/run_cuda_talker.bash
bash scripts/sample_application/run_cuda_listener.bash

Correctly working at https://github.com/tier4/pilot-auto.x2/blob/apply_agnocast_for_v4311/docs/agnocast_migration_status.md

  • 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)
  • 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.

Signed-off-by: sykwer <sykwer@gmail.com>
Copilot AI review requested due to automatic review settings March 13, 2026 19:08
@sykwer
Copy link
Copy Markdown
Member Author

sykwer commented Mar 13, 2026

Design Principles

  1. Same ipc_shared_ptr for CPU and GPU — GPU buffer lifetime piggybacks on Agnocast's existing kernel-bitmap mechanism. No new lifetime API.
  2. No CUDA dependency at build time — Neither agnocastlib nor agnocast_cuda requires the CUDA toolchain to compile. CUDA-specific code lives in agnocast_cuda, which loads libcudart.so at runtime via dlopen (see src/agnocast_cuda/src/cudart_loader.hpp). This allows agnocast_cuda to be distributed as a pre-built deb from the ROS build farm. In agnocastlib, dispatch uses if constexpr on a compile-time trait (is_cuda_message_v<T>), so the get_backend() symbol is only referenced when a CUDA message type is actually used. On machines without CUDA, agnocast_cuda is safely installed but the loader is never triggered.
  3. Backend abstraction — The GPU sharing mechanism is behind GpuTransferBackend. Currently CudaIpcBackend (discrete GPU); Jetson/DRIVE backends are placeholders. The backend is selected automatically at runtime when the first CUDA message is published or received.
  4. Read-only shared memory — Subscribers cannot write to the message. The subscriber-local GPU pointer is stored in ipc_shared_ptr's control block and accessed via gpu_data().

API Reference

Message Types (agnocast/cuda/message_types.hpp)

Type Base data field
agnocast::cuda::PointCloud2 sensor_msgs::msg::PointCloud2 + cuda_message_tag uint8_t* (GPU device pointer, shadows base std::vector)
agnocast::cuda::Image sensor_msgs::msg::Image + cuda_message_tag uint8_t* (GPU device pointer, shadows base std::vector)

CPU metadata (header, width, height, point_step, etc.) lives in shared memory. data points to GPU device memory allocated via cudaMalloc.

To define a custom CUDA message type, inherit from both the ROS message and agnocast::cuda_message_tag, shadow the data field, and specialize get_cuda_gpu_data_size<T>():

struct MyGpuMsg : public my_msgs::msg::MyMsg, public agnocast::cuda_message_tag {
    uint8_t* data = nullptr;
};

template <> size_t agnocast::get_cuda_gpu_data_size(const MyGpuMsg& msg) {
    return msg.width * msg.height * msg.bytes_per_pixel;
}

User packages must link against agnocast_cuda to resolve the get_backend() symbol (declared in agnocastlib, defined in agnocast_cuda). Note that find_package(agnocast_cuda) always succeeds (even without CUDA) because the library has no build-time CUDA dependency. Packages that compile .cu files or call CUDA APIs directly (e.g., cudaMalloc) must also check for the CUDA toolchain:

include(CheckLanguage)
check_language(CUDA)
find_package(agnocast_cuda QUIET)
if(CMAKE_CUDA_COMPILER AND agnocast_cuda_FOUND)
  enable_language(CUDA)
  find_package(CUDAToolkit REQUIRED)
  # ... build CUDA targets here
endif()

Publisher

// Creation — identical to non-CUDA Agnocast publishers
auto pub = node->create_publisher<agnocast::cuda::PointCloud2>("/topic", qos);

// Usage
auto msg = pub->borrow_loaned_message();
msg->width = n;  msg->point_step = 16;           // CPU metadata → shared memory
cudaMalloc(&msg->data, n * 16);                   // GPU allocation (not intercepted by heaphook)
my_kernel<<<grid, block>>>(msg->data, ...);       // fill on GPU
pub->publish(std::move(msg));                      // msg invalidated after this

Internally, publish() exports a CUDA IPC handle, stores GpuMetadata in shared memory (heaphook active), then issues the standard publish ioctl. On reclaim, backend.free_device_memory() is called (which maps to cudaFree on CudaIpcBackend).

Subscriber

// Creation — identical to non-CUDA Agnocast subscribers
auto sub = node->create_subscription<agnocast::cuda::PointCloud2>("/topic", qos, callback);

// Callback
void callback(agnocast::ipc_shared_ptr<const agnocast::cuda::PointCloud2> msg) {
    uint32_t width = msg->width;                                        // CPU metadata: msg->field
    auto* gpu_ptr = static_cast<uint8_t*>(msg.gpu_data());     // GPU data: msg.gpu_data()
    my_kernel<<<grid, block>>>(gpu_ptr, ...);
}

msg->data is the publisher's device pointer — invalid in the subscriber. Always use msg.gpu_data().

Holding a copy of msg (or any ipc_shared_ptr copy) keeps the GPU mapping alive.

ipc_shared_ptr Extensions

Method Description
void* gpu_data() const Returns subscriber-local GPU device pointer. nullptr for non-CUDA messages.

Bridge

CUDA types are automatically excluded from bridging. If you need to send to a non-Agnocast node, cudaMemcpy to a standard ROS message yourself.

Supported Platforms

Platform Backend Status
Discrete GPU (GeForce, Quadro, Tesla, A/H series) CudaIpcBackend Supported
Jetson Orin (newer CUDA), discrete GPUs VmmBackend Placeholder
Jetson Xavier / Orin NvSciBufBackend / UnifiedMemoryBackend Placeholder
Jetson Thor (CUDA 13.0+) CudaIpcBackend Placeholder
NVIDIA DRIVE NvSciBufBackend Placeholder
MIG partitions Not supported (NVIDIA limitation)

Constraints

  • cudaMalloc only — cudaMallocManaged and cudaMallocHost do not support CUDA IPC handles
  • Same GPU device required for publisher and subscriber
  • cudaIpcOpenMemHandle latency: ~50-200us per message (cacheable in future)
  • Subscriber shared memory is read-only — do not write to any msg-> field

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.

PR Overview: Add CUDA IPC support to Agnocast

Cross-process zero-copy GPU buffer sharing, with zero build-time CUDA dependency.

What this PR does

Adds a new agnocast_cuda package that enables publishers and subscribers to share GPU device memory across processes via CUDA IPC — with the same ipc_shared_ptr API used for CPU messages. The CUDA runtime is loaded via dlopen at runtime, so the entire package builds as pure C++17 and can be distributed as a pre-built deb from the ROS build farm without a CUDA toolchain.

Architecture

1. agnocast_cuda package (new)

  • cudart_loader.hpp — singleton that dlopens libcudart.so on first use; replicates stable-ABI CUDA types so no CUDA headers are needed at build time. Fallback chain: .so -> .so.12 -> .so.11.0. Safe on non-CUDA systems (never triggered unless a CUDA message type is used).
  • cuda_ipc_backend.cpp — production backend for discrete GPUs: cudaIpcGetMemHandle (export), cudaIpcOpenMemHandle (import), cudaIpcCloseMemHandle (release), cudaFree (reclaim). All calls go through CudartLoader::instance().
  • get_backend.cpp — queries cudaDevAttrIntegrated to select backend. Discrete GPU -> CudaIpcBackend. Integrated GPU (Jetson/DRIVE) -> placeholder backends (VmmBackend, NvSciBufBackend, UnifiedMemoryBackend).
  • message_types.hppagnocast::cuda::PointCloud2 and agnocast::cuda::Image message types (inherit from ROS msg + cuda_message_tag, shadow data field with a GPU device pointer).

2. agnocastlib integration

  • cuda_message_tag.hppis_cuda_message_v<T> compile-time trait, get_cuda_gpu_data_size<T>() template.
  • gpu_transfer_backend.hpp — abstract GpuTransferBackend interface + get_backend() declaration (defined in agnocast_cuda, resolved at link time).
  • gpu_metadata.hppGpuHandle (64-byte opaque) + GpuMetadata struct stored in shared memory alongside messages.
  • agnocast_publisher.hpp — publish path: exports GPU handle via backend, stores GpuMetadata in shared memory. Reclaim path: cudaFree via backend.
  • agnocast_callback_info.hpp — subscriber path: imports GPU handle via backend, stores local GPU pointer in ipc_shared_ptr control block.
  • agnocast_smart_pointer.hppgpu_data() accessor, gpu_release_fn cleanup on last reference (GPU unmap before bitmap release).
  • agnocast_bridge_node.hpp — CUDA message types are excluded from bridging with a compile-time guard and warning.

3. Sample application and packaging

  • cuda_publisher.cpp — allocates GPU buffer via cudaMalloc, launches CUDA kernel, publishes via Agnocast.
  • cuda_subscriber.cpp — receives message, accesses GPU data via msg.gpu_data(), verifies with cudaMemcpy D->H.
  • CMakeLists uses check_language(CUDA) + CMAKE_CUDA_COMPILER AND agnocast_cuda_FOUND pattern.
  • Meta-package agnocast now includes agnocast_cuda as exec_depend (safe on non-CUDA systems).

Message flow

Publisher                          Kernel Module                    Subscriber
   |                                    |                               |
   | cudaMalloc -> msg->data            |                               |
   | fill_kernel<<<>>>                  |                               |
   | publish()                          |                               |
   |   export_handle (cudaIpcGet...)    |                               |
   |   store GpuMetadata in shmem       |                               |
   |   publish ioctl ------------------>| entry + bitmap                |
   |   mq_send ------------------------>|---------- epoll wakeup ------>|
   |                                    |<-- receive ioctl -------------|
   |                                    |                 import_handle |
   |                                    |           (cudaIpcOpen...)    |
   |                                    |               gpu_data() -->  |
   |                                    |             kernel<<<>>>      |
   |                                    |                               |
   |                                    |<-- release (last ref) --------|
   |                                    |      cudaIpcCloseMemHandle    |
   | reclaim (bitmap=0) <-------------->|                               |
   |   cudaFree(publisher_gpu_ptr)      |                               |

Key design decisions

  • No build-time CUDA dependency: libagnocast_cuda.so has zero DT_NEEDED on libcudart. Verified: no CUDA symbols, no RPATH to CUDA dirs.
  • Lazy loading: CudartLoader is only triggered when a CUDA message type is actually published/subscribed. Non-CUDA users are completely unaffected.
  • ABI-stable type replicas: cudaIpcMemHandle_t (64 bytes), cudaDevAttrIntegrated (= 18), etc. — verified against CUDA 12.8 headers on driver_types.h.
  • Same lifetime model: GPU buffer cleanup piggybacks on the existing kernel-bitmap + ipc_shared_ptr reference counting. No new lifetime API.

Verification

  • Full workspace build (11 packages) with zero CUDA on PATH: pass
  • libagnocast_cuda.so ldd/nm/readelf: no CUDA deps, dlopen/dlsym present: pass
  • Downstream find_package(agnocast_cuda) + target resolution: pass
  • Sample app skips CUDA binaries when no CUDA compiler: pass
  • End-to-end cuda_talker + cuda_listener at 10Hz with data verification: pass
  • clang-format: pass

Comment thread src/agnocast_cuda/CMakeLists.txt
Comment thread src/agnocast_sample_application/package.xml Outdated
Comment thread src/agnocastlib/include/agnocast/bridge/agnocast_bridge_node.hpp
Comment thread src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp Outdated
Comment thread src/agnocastlib/include/agnocast/agnocast_publisher.hpp
Comment thread src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
Comment thread src/agnocast_sample_application/src/cuda_subscriber.cpp Outdated
Comment thread src/agnocast_sample_application/src/cuda_publisher.cpp Outdated
Signed-off-by: sykwer <sykwer@gmail.com>
@sykwer sykwer added the need-patch-update Bug fixes and other changes - requires PATCH version update label Mar 13, 2026
sykwer added 10 commits March 14, 2026 04:23
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
@sykwer sykwer changed the title [NOT FOR MERGED] cuda ipc agnocast [NOT FOR MERGED] CUDA IPC Mar 13, 2026
@sykwer sykwer changed the title [NOT FOR MERGED] CUDA IPC [NOT FOR MERGED] Agnocast CUDA IPC Mar 13, 2026
@sykwer sykwer added the run-build-test Run build-test in CI label Mar 13, 2026
@sykwer sykwer changed the title [NOT FOR MERGED] Agnocast CUDA IPC [NOT YET MERGED] Agnocast CUDA IPC Mar 13, 2026
@sykwer sykwer changed the title [NOT YET MERGED] Agnocast CUDA IPC feat: Agnocast CUDA IPC Mar 13, 2026
@github-actions
Copy link
Copy Markdown

Coverage Report (humble)
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
build/agnocastlib/rclcpp_components/node_main_test_publisher_component_node.cpp
                                              35       0     0%   26,28-34,36-37,39-45,47-53,55-58,61,64,66-67,69,71,73
build/agnocastlib/rclcpp_components/node_main_test_subscription_component_node.cpp
                                              35       0     0%   26,28-34,36-37,39-45,47-53,55-58,61,64,66-67,69,71,73
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
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/non_ros_thread_info__struct.hpp
                                               6       6   100%   
install/include/agnocast_cie_thread_configurator/cie_thread_configurator.hpp
                                              32      28    87%   60-61,71,77
src/agnocastlib/include/agnocast/agnocast.hpp
                                              15      12    80%   84,92,172
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%   
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   32
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              59      48    81%   96,107-108,138,142,144,153-155,233,244
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   292,297,305,310,335
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              52       9    17%   91,97,100-103,115,120-124,128,130-131,134-135,137,139-142,144,151,154,156,158-159,162,165-166,176,179,181,183-184,187,190-191,199,207-208,210
src/agnocastlib/include/agnocast/agnocast_timer.hpp
                                              14      11    78%   26,56,69
src/agnocastlib/include/agnocast/agnocast_tracepoint_wrapper.h
                                              13       6    46%   15,32,43,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
                                             121       8     6%   58,60,70,72,93,108,115,117-120,123-125,130,132-136,140,158,166-168,171-173,178-184,186,188-189,192,196,199-200,204,207-208,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,293-295,298-301,303,306,308-310,312-313,317,320,322,324-328,330-331
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%   74,76,78
src/agnocastlib/include/agnocast/message_filters/subscriber.hpp
                                              42       0     0%   18,20-22,35,74,78,91,96,151,156,159,163,196,208,212-214,227,231,245,249-251,265,269,271-278,286,288-292,301,325
src/agnocastlib/include/agnocast/message_filters/sync_policies/approximate_time.hpp
                                             363     314    86%   127,137,140,143-144,154,157,159,165,259-281,315-331
src/agnocastlib/include/agnocast/message_filters/sync_policies/exact_time.hpp
                                              59      58    98%   171
src/agnocastlib/include/agnocast/message_filters/synchronizer.hpp
                                             101      92    91%   115,117-118,169,172,174-175,314,316
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   24,26
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                              16      10    62%   57,59,294,298,311,316
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             262       5     1%   46,49,51-57,61-62,65,67-68,70-72,74,76-81,84-89,93-94,98-102,105,108,110,113,115-116,123,125-129,133,135-140,143,145-146,150,152-155,158-162,166,168-169,174-175,178,180,183,185,187-195,198-200,204-205,208,210,212-213,216,218-222,224,228,231,234-240,242-243,246-248,250,260,262-263,266-268,270-271,273-275,277-278,281-282,285-286,289-292,296-297,300-302,304,307,309-310,313,316,318-319,322,325,329-330,333,336,340,342-343,345-346,348,350-352,355-356,362,365-366,371,374,378,380-383,386-388,390-392,398-401,403-404,407-412,415-416,418-419,421-422,424,427-428,431-432,435,439,442-444,447-450,452,454,457-461,464-466,469-473,476-478,481-482,484-487,489-491,494-496,500-503,506-509,516-517
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
                                             216     148    68%   22-24,26,39-41,44-46,49,55,84-87,108,125,128-132,135-140,142,146-147,150-152,154-156,158,199,201-202,205-206,208-209,211,218-220,222,281,306-308,310,327,331,334-335,343,345-346,348,371,373-374,376
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%   23-26,29,41,46-48,50,52-57,59-62,64,68,70-72,74-76,80,82,84-88,90,95-96,100-102,104,106-111,113-116,118,121-124,128-131,135-136,138-142,144,149-150,152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              42      39    92%   18-19,85
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
                                              87       0     0%   14,16,19,21-22,31,34,36-37,40-41,43,46,50,52-61,64,67,72,74-77,80-82,84-87,90,92-97,101,103-105,108,112,114,119,123-124,132-137,141,144-145,149,152,154-159,162,164-165,168,170-171,174,177,179-184,187
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
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
                                               6       6   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
                                             182       0     0%   20-23,25-26,29-31,34,36-37,40-41,44-45,49,51,53-54,56,58-59,61-64,67-70,74,76-77,79-80,82,84-87,89-90,92,95,97,99-102,106,109,111-113,115,117,120,122-123,125-127,131,133-135,137-139,143,145-146,148-149,151,156,158-164,167-168,170-171,174-175,177-178,181,185-191,194-195,197-198,201-202,204-205,208,213,215-217,219,221-222,224,229,231-234,237-238,242,245-247,250-252,255,257-258,261-263,266,269,273-274,277-281,284-285,289,291-294,296-297,300-303,306,308-309,312,315-317,321-322,325-327,330,334,337-339,344-345,347,349-351
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
                                             243       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,86-87,89,91-94,96-97,99,102,104-107,109,113,115-116,118-120,124,128-130,133-135,138,141,144-145,147,149,151-152,155,158,160,163-164,166-167,173,175-177,179-180,184-185,187,189-192,194-195,198-200,204-205,209,211,213-216,219,221-222,225,229,231,233-235,238,241-242,245-246,249,252,255-256,259,262-265,267-270,274-275,277-279,281,283,285-287,289,291-293,297,299-300,302-304,308,310-311,313-315,318-320,322-323,325-332,335-339,343-345,348-350,354-355,359,361-363,366-367,371-372,374-375,378-380,383-385,389,391-393,395-397,402,405-406,409-410,413-415,417,419,422-423,425-426,431,433-434,437-438,440-442,444,447-448,453,457,459-460,462
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
                                              13       0     0%   11,13-14,18-21,24-25,27,30,32-33
src/agnocastlib/src/node/agnocast_node.cpp
                                              19      19   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
                                             203       0     0%   18-22,24-26,29-32,35,38-44,47-48,51,54,56-59,62,64-67,70,72-75,78,81-83,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129,133,135,137-138,142,144-147,151,159-163,165,167-171,174-176,179,185,190-196,198-201,203-204,207,209-215,217-218,220,224,226-230,232,236,238-242,244,247,250-254,256-258,261,263-272,274-276,279,284,289,295-297,300-301,303-309,311-313,316,321-322,325,327,330,336-339,342,344-348,350,353-356,359-364,366-368,372,375,377
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_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
                                             395      88    22%   37-41,43,45,57,61-66,68,70-71,73,85,90-91,99-100,111-113,115-116,125,127,130,132-134,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,189,192,196-197,211-213,216,229-230,234,249,255,283,289-291,293,295-298,308,320,322-324,339,360,364-365,367-369,372-373,375,378-380,383,385-386,388-391,394-396,398-400,403,413,416-417,419-421,424,427,430-431,433,439-441,444-445,449-450,452,454,457,460-461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584,587,590-591,593-595,597,600,602,604,607,609,611-616,618,621,624,626-627,629,632-634,638,641,644-646,648-657,663-664,667,670,673-675,677-682,684,690-691,694,697,700-701,703,705-707,710,712-716,718-720,722-724,726-727,729,732-733,738-745,749,756,759-760,762-763,765-766,769,772-773,775,777-779,781,785,788
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                                       4825    1708    35%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

Coverage Report (jazzy)
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
build/agnocastlib/rclcpp_components/node_main_test_publisher_component_node.cpp
                                              34       0     0%   30,32-36,38-39,41-43,45,48-49,54,56-57,59-66,69-71,73,75-76,78,80-81
build/agnocastlib/rclcpp_components/node_main_test_subscription_component_node.cpp
                                              34       0     0%   30,32-36,38-39,41-43,45,48-49,54,56-57,59-66,69-71,73,75-76,78,80-81
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
install/include/agnocast_cie_config_msgs/agnocast_cie_config_msgs/msg/detail/non_ros_thread_info__struct.hpp
                                               6       6   100%
install/include/agnocast_cie_thread_configurator/cie_thread_configurator.hpp
                                              32      31    96%   77
src/agnocastlib/include/agnocast/agnocast.hpp
                                              15      12    80%   84,92,172
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_multi_threaded_executor.hpp
                                               1       0     0%   32
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              67      55    82%   96,108,138,141-142,144,148,153-155,233,244
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   292,297,305,310,335
src/agnocastlib/include/agnocast/agnocast_subscription.hpp
                                              60       9    15%   73,91-92,97,100-103,105,115,120-124,128,130-131,134-135,137,139-142,144-145,151,154,156,158-159,162,165-166,173,176,179,181,183-184,187,190-191,197,199,207-211
src/agnocastlib/include/agnocast/agnocast_timer.hpp
                                              15      12    80%   26,56,69
src/agnocastlib/include/agnocast/agnocast_tracepoint_wrapper.h
                                              13       6    46%   15,32,43,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
                                             132       8     6%   58,60,70,72-73,93,96,108,111,115,117-120,123-125,130,132-136,138,140,158,161,166-168,171-173,178-184,186,188-190,192,196,199-201,204,207-209,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,291,293-295,298-301,303,306,308-310,312-314,317,320,322,324-328,330-332
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%   74,76,78-79
src/agnocastlib/include/agnocast/message_filters/subscriber.hpp
                                              53       0     0%   18,20-22,35,74,78-79,91,96-97,151,155-157,159,162-164,196,208,212-215,227,231-232,245,249-252,265,269,271-278,280,286,288-292,295,301,325
src/agnocastlib/include/agnocast/message_filters/sync_policies/approximate_time.hpp
                                             369     320    86%   127,137,140,143-144,154,157,159,165,259-281,315-331
src/agnocastlib/include/agnocast/message_filters/sync_policies/exact_time.hpp
                                              59      58    98%   171
src/agnocastlib/include/agnocast/message_filters/synchronizer.hpp
                                             113     101    89%   115,117-119,169,172,174-176,314,316-317
src/agnocastlib/include/agnocast/node/agnocast_arguments.hpp
                                               3       1    33%   30,32
src/agnocastlib/include/agnocast/node/agnocast_context.hpp
                                               3       1    33%   24,26
src/agnocastlib/include/agnocast/node/agnocast_node.hpp
                                              16      10    62%   57,59,294,298,311,316
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             273       5     1%   46,49,51-57,61-63,65,67-72,74,76-81,84-89,93-94,98-102,105-106,108,110,113,115-116,118,123,125-127,129,133,135-137,139-140,143,145-146,148,150,152-155,158-162,166,168-169,174-175,178,180,183,185,187-195,198-200,204-205,208,210,212-216,218-224,226,228-229,231,234-240,242-244,246-250,260,262-263,266-268,270-271,273-275,277-278,281-282,285-286,289-292,296-297,300-302,304-305,307,309-310,313,316,318-319,322,325,329-330,333,336,340,342-343,345-346,348,350-352,355-356,362,365-366,371,374,378,380-383,386-388,390-392,398-401,403-404,407-412,415-416,418-419,421-422,424,427-428,431-432,435,439,442-444,447-450,452,454,457-461,464-466,469-473,476-478,481-482,484-487,489-491,494-496,500-503,506-509,516-517
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
                                             221     146    66%   22-24,26,39-41,44-46,49-50,55,84-87,108,125,128-132,135-140,142-144,146-147,150-152,154-156,158,160,199,201-202,205-206,208-209,211,213,218-220,222,262,281,292,306-308,310,327,331,334-335,343,345-346,348,371,373-374,376
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%   23-26,29,41,46-48,50,52-57,59-62,64-65,68,70-72,74-76,78,80,82,84-88,90,95-97,100-102,104,106-111,113-116,118-119,121-124,128-131,135-136,138-142,144,149-152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              46      43    93%   18-19,79
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
                                              90       0     0%   14,16,19,21-22,31,34,36-37,40-41,43-44,46,50,52-61,64,67,72,74-77,80-82,84-87,90,92-97,101,103-105,108,112-115,119,123-124,132-137,141,144-145,149,152,154-159,162,164-165,168,170-171,174,177,179-184,187
src/agnocastlib/src/agnocast_single_threaded_executor.cpp
                                              43      26    60%   20,31-33,37,46-48,71,75-78,81-82,84-85
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       6    46%   34,82,100,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
                                             195       0     0%   20-23,25-26,29-32,34,36-37,40-41,44-45,47,49,51,53-54,56,58-59,61-64,67-70,72,74,76-77,79-80,82,84-87,89-93,95,97,99-102,106,109,111-113,115,117-118,120,122-123,125-127,129,131,133-135,137-139,143,145-146,148-149,151,153-154,156,158-164,167-168,170-171,174-175,177-178,181,185-191,194-195,197-198,201-202,204-205,208,213,215-217,219,221-222,224,227,229,231-234,237-238,242,245-247,250-252,255,257-258,261-263,266,269,273-274,277-281,284-285,289,291-294,296-297,300-303,306,308-309,312,315-317,321-322,325-327,330-331,334,337-339,344-345,347,349-352,354
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
                                             262       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,86-87,89,91-94,96-100,102,104-107,109,111,113,115-116,118-120,122,124,128-130,133-136,138,141,144-145,147,149,151-152,155,158,160,163-164,166-167,171,173,175-177,179-180,184-185,187,189-192,194-195,198-200,204-205,209,211,213-216,219,221-222,225-227,229,231,233-235,238,241-242,245-246,249-250,252,255-256,259,262-265,267-270,274-275,277-279,281,283,285-287,289,291-293,297,299-300,302-304,308,310-311,313-315,318-320,322-323,325-332,335-339,343-345,348-350,352,354-355,357,359,361-363,366-367,371-372,374-375,378-380,383-385,387,389,391-393,395-397,400,402,405-406,409-410,413-415,417,419,422-423,425-426,431,433-434,437-438,440-442,444,447-448,451,453,457,459-460,462-463
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
                                              15       0     0%   11,13-14,18-21,24-25,27-28,30,32-34
src/agnocastlib/src/node/agnocast_node.cpp
                                              19      19   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
                                             223       0     0%   18-22,24-26,29-32,35,38-44,47-49,51,54,56-59,61-62,64-67,69-70,72-75,77-79,81-84,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129-130,133,135,137-138,140,142,144-147,149,151,159-163,165,167-171,174-176,179,183,185,190-196,198-201,203-205,207,209-215,217-218,220-221,224,226-230,232-233,236,238-242,244-245,247,250-254,256-259,261,263-267,269-272,274-276,279,284,286-287,289,295-297,300-301,303-309,311-313,316,321-323,325,327-328,330,336-339,342,344-348,350,353-356,359-364,366-368,372-373,375,377-378
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_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
                                             418      88    21%   37-41,43,45,47,49,57,61-66,68,70-71,73,85,91,100,111-113,116,125,127,130,132-135,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,187,189,192,196-198,211-213,216,229-230,234,238,249,255,267,283,289-291,293,295-299,308,320,322-324,339,360,364-365,367,369,372,375,378-381,383,385-386,388-389,391,394,396,398,400,403-404,413,416-417,419-422,424-425,427,430-431,433,439-441,444-445,449-450,452,454,457,461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584-585,587,590-591,593-595,597-598,600,602,604-605,607,609,611-616,618-619,621,624,626-627,629,632-634,638-639,641,644-646,648-657,663-664,667-668,670,673-675,677-682,684,690-691,694-695,697,700-701,703,705-707,710,712-716,718-720,722-724,726-729,732-733,738-745,747,749-750,754,759-760,762-763,765-767,769,772-773,775,777-779,781,783,785,788,795,797,801,803,806,809,812,815
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                                       5091    1747    34%
------------------------------------------------------------------------------

@sykwer
Copy link
Copy Markdown
Member Author

sykwer commented Mar 26, 2026

stop merge. agnocast_cuda cannot be built on ROS build farm due the the absence of cuda runtime.

@sykwer
Copy link
Copy Markdown
Member Author

sykwer commented Mar 26, 2026

We want agnocast_cuda (including libagnocast_cuda.so) to be a pre-built deb distributed from the ROS build farm — but the build farm doesn't have CUDA.

That means the .cpp files that call CUDA runtime APIs (cudaIpcGetMemHandle, cudaMalloc, etc.) can't be compiled there at all.

The solution: dlopen libcudart.so at runtime instead of linking against it at build time. Then agnocast_cuda has zero build-time CUDA dependency — it's pure C++ that loads the CUDA runtime dynamically
on first use.

sykwer added 5 commits April 9, 2026 14:50
# Conflicts:
#	src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
Signed-off-by: sykwer <sykwer@gmail.com>
@sykwer sykwer requested a review from Copilot April 9, 2026 08:14
@sykwer sykwer added run-build-test Run build-test in CI and removed run-build-test Run build-test in CI labels Apr 9, 2026

This comment was marked as outdated.

Signed-off-by: sykwer <sykwer@gmail.com>
@sykwer sykwer added run-build-test Run build-test in CI and removed run-build-test Run build-test in CI labels Apr 9, 2026
Signed-off-by: sykwer <sykwer@gmail.com>
@sykwer sykwer added run-build-test Run build-test in CI and removed run-build-test Run build-test in CI labels Apr 9, 2026
@sykwer
Copy link
Copy Markdown
Member Author

sykwer commented Apr 9, 2026

Ready for reviewed

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%   
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              59      48    81%   105,116-117,147,151,153,162-164,257,268
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             121       8     6%   58,60,70,72,93,108,115,117-120,123-125,130,132-136,140,158,166-168,171-173,178-184,186,188-189,192,196,199-200,204,207-208,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,293-295,298-301,303,306,308-310,312-313,317,320,322,324-328,330-331
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64,68,70-72,74-76,80,82,84-88,90,95-96,100-102,104,106-111,113-116,118,121-124,128-131,135-136,138-142,144,149-150,152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              42      39    92%   18-19,85
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
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
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
                                             183       0     0%   20-23,25-26,29-31,34,36-37,40-41,44-45,49,51,53-54,56,58-59,61-64,67-70,74,76-77,82-83,85,87-90,92-93,95,98,100,102-105,109,112,114-116,118,120,123,125-126,128-130,134,136-138,140-142,146,148-149,151-152,154,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334,338,341-343,348-349,351,353-355
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
                                             239       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,403,405-407,410-411,415-416,418-419,422-424,427-429,433,435-437,439-441,446,450,452-453,455
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
                                              19      19   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
                                             203       0     0%   18-22,24-26,29-32,35,38-44,47-48,51,54,56-59,62,64-67,70,72-75,78,81-83,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129,133,135,137-138,142,144-147,151,159-163,165,167-171,174-176,179,185,190-196,198-201,203-204,207,209-215,217-218,220,224,226-230,232,236,238-242,244,247,250-254,256-258,261,263-272,274-276,279,284,289,295-297,300-301,303-309,311-313,316,321-322,325,327,330,336-339,342,344-348,350,353-356,359-364,366-368,372,375,377
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_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
                                             395      88    22%   37-41,43,45,57,61-66,68,70-71,73,85,90-91,99-100,111-113,115-116,125,127,130,132-134,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,189,192,196-197,211-213,216,229-230,234,249,255,283,289-291,293,295-298,308,320,322-324,339,360,364-365,367-369,372-373,375,378-380,383,385-386,388-391,394-396,398-400,403,413,416-417,419-421,424,427,430-431,433,439-441,444-445,449-450,452,454,457,460-461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584,587,590-591,593-595,597,600,602,604,607,609,611-616,618,621,624,626-627,629,632-634,638,641,644-646,648-657,663-664,667,670,673-675,677-682,684,690-691,694,697,700-701,703,705-707,710,712-716,718-720,722-724,726-727,729,732-733,738-745,749,756,759-760,762-763,765-766,769,772-773,775,777-779,781,785,788
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                                       4769    1733    36%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              67      55    82%   105,117,147,150-151,153,157,162-164,257,268
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             132       8     6%   58,60,70,72-73,93,96,108,111,115,117-120,123-125,130,132-136,138,140,158,161,166-168,171-173,178-184,186,188-190,192,196,199-201,204,207-209,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,291,293-295,298-301,303,306,308-310,312-314,317,320,322,324-328,330-332
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64-65,68,70-72,74-76,78,80,82,84-88,90,95-97,100-102,104,106-111,113-116,118-119,121-124,128-131,135-136,138-142,144,149-152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              46      43    93%   18-19,79
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
                                              43      26    60%   20,31-33,37,46-48,71,75-78,81-82,84-85
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
                                             196       0     0%   20-23,25-26,29-32,34,36-37,40-41,44-45,47,49,51,53-54,56,58-59,61-64,67-70,72,74,76-77,82-83,85,87-90,92-96,98,100,102-105,109,112,114-116,118,120-121,123,125-126,128-130,132,134,136-138,140-142,146,148-149,151-152,154,156-157,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,236,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334-335,338,341-343,348-349,351,353-356,358
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
                                             257       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,400-401,403,405-407,410-411,415-416,418-419,422-424,427-429,431,433,435-437,439-441,444,446,450,452-453,455-456
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
                                              19      19   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
                                             223       0     0%   18-22,24-26,29-32,35,38-44,47-49,51,54,56-59,61-62,64-67,69-70,72-75,77-79,81-84,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129-130,133,135,137-138,140,142,144-147,149,151,159-163,165,167-171,174-176,179,183,185,190-196,198-201,203-205,207,209-215,217-218,220-221,224,226-230,232-233,236,238-242,244-245,247,250-254,256-259,261,263-267,269-272,274-276,279,284,286-287,289,295-297,300-301,303-309,311-313,316,321-323,325,327-328,330,336-339,342,344-348,350,353-356,359-364,366-368,372-373,375,377-378
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_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
                                             418      88    21%   37-41,43,45,47,49,57,61-66,68,70-71,73,85,91,100,111-113,116,125,127,130,132-135,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,187,189,192,196-198,211-213,216,229-230,234,238,249,255,267,283,289-291,293,295-299,308,320,322-324,339,360,364-365,367,369,372,375,378-381,383,385-386,388-389,391,394,396,398,400,403-404,413,416-417,419-422,424-425,427,430-431,433,439-441,444-445,449-450,452,454,457,461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584-585,587,590-591,593-595,597-598,600,602,604-605,607,609,611-616,618-619,621,624,626-627,629,632-634,638-639,641,644-646,648-657,663-664,667-668,670,673-675,677-682,684,690-691,694-695,697,700-701,703,705-707,710,712-716,718-720,722-724,726-729,732-733,738-745,747,749-750,754,759-760,762-763,765-767,769,772-773,775,777-779,781,783,785,788,795,797,801,803,806,809,812,815
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                                       5034    1769    35%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%   
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              59      48    81%   104,115-116,146,150,152,161-163,256,267
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             121       8     6%   58,60,70,72,93,108,115,117-120,123-125,130,132-136,140,158,166-168,171-173,178-184,186,188-189,192,196,199-200,204,207-208,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,293-295,298-301,303,306,308-310,312-313,317,320,322,324-328,330-331
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64,68,70-72,74-76,80,82,84-88,90,95-96,100-102,104,106-111,113-116,118,121-124,128-131,135-136,138-142,144,149-150,152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              42      39    92%   18-19,85
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
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
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
                                             183       0     0%   20-23,25-26,29-31,34,36-37,40-41,44-45,49,51,53-54,56,58-59,61-64,67-70,74,76-77,82-83,85,87-90,92-93,95,98,100,102-105,109,112,114-116,118,120,123,125-126,128-130,134,136-138,140-142,146,148-149,151-152,154,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334,338,341-343,348-349,351,353-355
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
                                             239       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,403,405-407,410-411,415-416,418-419,422-424,427-429,433,435-437,439-441,446,450,452-453,455
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
                                              19      19   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
                                             203       0     0%   18-22,24-26,29-32,35,38-44,47-48,51,54,56-59,62,64-67,70,72-75,78,81-83,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129,133,135,137-138,142,144-147,151,159-163,165,167-171,174-176,179,185,190-196,198-201,203-204,207,209-215,217-218,220,224,226-230,232,236,238-242,244,247,250-254,256-258,261,263-272,274-276,279,284,289,295-297,300-301,303-309,311-313,316,321-322,325,327,330,336-339,342,344-348,350,353-356,359-364,366-368,372,375,377
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_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
                                             395      88    22%   37-41,43,45,57,61-66,68,70-71,73,85,90-91,99-100,111-113,115-116,125,127,130,132-134,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,189,192,196-197,211-213,216,229-230,234,249,255,283,289-291,293,295-298,308,320,322-324,339,360,364-365,367-369,372-373,375,378-380,383,385-386,388-391,394-396,398-400,403,413,416-417,419-421,424,427,430-431,433,439-441,444-445,449-450,452,454,457,460-461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584,587,590-591,593-595,597,600,602,604,607,609,611-616,618,621,624,626-627,629,632-634,638,641,644-646,648-657,663-664,667,670,673-675,677-682,684,690-691,694,697,700-701,703,705-707,710,712-716,718-720,722-724,726-727,729,732-733,738-745,749,756,759-760,762-763,765-766,769,772-773,775,777-779,781,785,788
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                                       4769    1733    36%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              67      55    82%   104,116,146,149-150,152,156,161-163,256,267
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             132       8     6%   58,60,70,72-73,93,96,108,111,115,117-120,123-125,130,132-136,138,140,158,161,166-168,171-173,178-184,186,188-190,192,196,199-201,204,207-209,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,291,293-295,298-301,303,306,308-310,312-314,317,320,322,324-328,330-332
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64-65,68,70-72,74-76,78,80,82,84-88,90,95-97,100-102,104,106-111,113-116,118-119,121-124,128-131,135-136,138-142,144,149-152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              46      43    93%   18-19,79
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
                                              43      26    60%   20,31-33,37,46-48,71,75-78,81-82,84-85
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
                                             196       0     0%   20-23,25-26,29-32,34,36-37,40-41,44-45,47,49,51,53-54,56,58-59,61-64,67-70,72,74,76-77,82-83,85,87-90,92-96,98,100,102-105,109,112,114-116,118,120-121,123,125-126,128-130,132,134,136-138,140-142,146,148-149,151-152,154,156-157,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,236,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334-335,338,341-343,348-349,351,353-356,358
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
                                             257       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,400-401,403,405-407,410-411,415-416,418-419,422-424,427-429,431,433,435-437,439-441,444,446,450,452-453,455-456
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
                                              19      19   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
                                             223       0     0%   18-22,24-26,29-32,35,38-44,47-49,51,54,56-59,61-62,64-67,69-70,72-75,77-79,81-84,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129-130,133,135,137-138,140,142,144-147,149,151,159-163,165,167-171,174-176,179,183,185,190-196,198-201,203-205,207,209-215,217-218,220-221,224,226-230,232-233,236,238-242,244-245,247,250-254,256-259,261,263-267,269-272,274-276,279,284,286-287,289,295-297,300-301,303-309,311-313,316,321-323,325,327-328,330,336-339,342,344-348,350,353-356,359-364,366-368,372-373,375,377-378
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_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
                                             418      88    21%   37-41,43,45,47,49,57,61-66,68,70-71,73,85,91,100,111-113,116,125,127,130,132-135,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,187,189,192,196-198,211-213,216,229-230,234,238,249,255,267,283,289-291,293,295-299,308,320,322-324,339,360,364-365,367,369,372,375,378-381,383,385-386,388-389,391,394,396,398,400,403-404,413,416-417,419-422,424-425,427,430-431,433,439-441,444-445,449-450,452,454,457,461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584-585,587,590-591,593-595,597-598,600,602,604-605,607,609,611-616,618-619,621,624,626-627,629,632-634,638-639,641,644-646,648-657,663-664,667-668,670,673-675,677-682,684,690-691,694-695,697,700-701,703,705-707,710,712-716,718-720,722-724,726-729,732-733,738-745,747,749-750,754,759-760,762-763,765-767,769,772-773,775,777-779,781,783,785,788,795,797,801,803,806,809,812,815
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                                       5034    1769    35%
------------------------------------------------------------------------------

@sykwer sykwer requested a review from nishikawa-masaki April 9, 2026 08:57
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              67      55    82%   105,117,147,150-151,153,157,162-164,257,268
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             132       8     6%   58,60,70,72-73,93,96,108,111,115,117-120,123-125,130,132-136,138,140,158,161,166-168,171-173,178-184,186,188-190,192,196,199-201,204,207-209,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,291,293-295,298-301,303,306,308-310,312-314,317,320,322,324-328,330-332
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64-65,68,70-72,74-76,78,80,82,84-88,90,95-97,100-102,104,106-111,113-116,118-119,121-124,128-131,135-136,138-142,144,149-152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              46      43    93%   18-19,79
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
                                              43      26    60%   20,31-33,37,46-48,71,75-78,81-82,84-85
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
                                             196       0     0%   20-23,25-26,29-32,34,36-37,40-41,44-45,47,49,51,53-54,56,58-59,61-64,67-70,72,74,76-77,82-83,85,87-90,92-96,98,100,102-105,109,112,114-116,118,120-121,123,125-126,128-130,132,134,136-138,140-142,146,148-149,151-152,154,156-157,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,236,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334-335,338,341-343,348-349,351,353-356,358
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
                                             257       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,400-401,403,405-407,410-411,415-416,418-419,422-424,427-429,431,433,435-437,439-441,444,446,450,452-453,455-456
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
                                              19      19   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
                                             223       0     0%   18-22,24-26,29-32,35,38-44,47-49,51,54,56-59,61-62,64-67,69-70,72-75,77-79,81-84,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129-130,133,135,137-138,140,142,144-147,149,151,159-163,165,167-171,174-176,179,183,185,190-196,198-201,203-205,207,209-215,217-218,220-221,224,226-230,232-233,236,238-242,244-245,247,250-254,256-259,261,263-267,269-272,274-276,279,284,286-287,289,295-297,300-301,303-309,311-313,316,321-323,325,327-328,330,336-339,342,344-348,350,353-356,359-364,366-368,372-373,375,377-378
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_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
                                             418      88    21%   37-41,43,45,47,49,57,61-66,68,70-71,73,85,91,100,111-113,116,125,127,130,132-135,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,187,189,192,196-198,211-213,216,229-230,234,238,249,255,267,283,289-291,293,295-299,308,320,322-324,339,360,364-365,367,369,372,375,378-381,383,385-386,388-389,391,394,396,398,400,403-404,413,416-417,419-422,424-425,427,430-431,433,439-441,444-445,449-450,452,454,457,461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584-585,587,590-591,593-595,597-598,600,602,604-605,607,609,611-616,618-619,621,624,626-627,629,632-634,638-639,641,644-646,648-657,663-664,667-668,670,673-675,677-682,684,690-691,694-695,697,700-701,703,705-707,710,712-716,718-720,722-724,726-729,732-733,738-745,747,749-750,754,759-760,762-763,765-767,769,772-773,775,777-779,781,783,785,788,795,797,801,803,806,809,812,815
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                                       5034    1769    35%
------------------------------------------------------------------------------

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

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
                                              17      16    94%   257
src/agnocastlib/include/agnocast/agnocast_callback_info.hpp
                                              27      27   100%   
src/agnocastlib/include/agnocast/agnocast_epoll.hpp
                                              57      27    47%   49,57-59,63,77-78,80-81,84-85,88,91-94,96-99,104-107,109-112,116,135
src/agnocastlib/include/agnocast/agnocast_publisher.hpp
                                              59      48    81%   105,116-117,147,151,153,162-164,257,268
src/agnocastlib/include/agnocast/agnocast_smart_pointer.hpp
                                              99      94    94%   348,353,365,370,406
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
                                             121       8     6%   58,60,70,72,93,108,115,117-120,123-125,130,132-136,140,158,166-168,171-173,178-184,186,188-189,192,196,199-200,204,207-208,212,216-219,221-222,225,227-228,231,234-235,237-245,248-249,254,258,261,265-266,268-269,272-275,278-279,281-287,293-295,298-301,303,306,308-310,312-313,317,320,322,324-328,330-331
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
                                              16      10    62%   75,83,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%   23-26,29,41,46-48,50,52-57,59-62,64,68,70-72,74-76,80,82,84-88,90,95-96,100-102,104,106-111,113-116,118,121-124,128-131,135-136,138-142,144,149-150,152,163,176,180-181
src/agnocastlib/src/agnocast_executor.cpp
                                              42      39    92%   18-19,85
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
                                              42      26    61%   20,31-33,37,46-48,71,75-78,81-82,84
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
                                             183       0     0%   20-23,25-26,29-31,34,36-37,40-41,44-45,49,51,53-54,56,58-59,61-64,67-70,74,76-77,82-83,85,87-90,92-93,95,98,100,102-105,109,112,114-116,118,120,123,125-126,128-130,134,136-138,140-142,146,148-149,151-152,154,159,161-167,170-171,173-174,177-179,181,183-184,187,191-197,200-201,203-204,207-209,211,213-214,217,222,224-226,228,230-231,233,238,240-243,246-247,251,254-256,259-261,264,266-267,270-272,275,278,282-283,286-290,293-294,298,300-303,305-306,309-312,315,317-318,321,325-326,329-331,334,338,341-343,348-349,351,353-355
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
                                             239       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,295-301,303-305,308-315,319-323,326,329,331-332,334-336,340,342-347,350-352,354-355,357,359-361,365-369,377-379,383,386-390,392,395-396,403,405-407,410-411,415-416,418-419,422-424,427-429,433,435-437,439-441,446,450,452-453,455
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
                                              19      19   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
                                             203       0     0%   18-22,24-26,29-32,35,38-44,47-48,51,54,56-59,62,64-67,70,72-75,78,81-83,86,89,91-92,95-96,98-99,103,106,109,111-114,117-120,123-124,126,129,133,135,137-138,142,144-147,151,159-163,165,167-171,174-176,179,185,190-196,198-201,203-204,207,209-215,217-218,220,224,226-230,232,236,238-242,244,247,250-254,256-258,261,263-272,274-276,279,284,289,295-297,300-301,303-309,311-313,316,321-322,325,327,330,336-339,342,344-348,350,353-356,359-364,366-368,372,375,377
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_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
                                             395      88    22%   37-41,43,45,57,61-66,68,70-71,73,85,90-91,99-100,111-113,115-116,125,127,130,132-134,143-146,148-151,153-154,156-157,159-161,165-168,170-173,175-176,178-180,182-184,189,192,196-197,211-213,216,229-230,234,249,255,283,289-291,293,295-298,308,320,322-324,339,360,364-365,367-369,372-373,375,378-380,383,385-386,388-391,394-396,398-400,403,413,416-417,419-421,424,427,430-431,433,439-441,444-445,449-450,452,454,457,460-461,465-468,476-477,480-482,485,487,489-490,493,500-506,509,511,514-519,521,527-535,537,543,547,549-550,553-554,558,560,562,565,569-570,572-573,575,584,587,590-591,593-595,597,600,602,604,607,609,611-616,618,621,624,626-627,629,632-634,638,641,644-646,648-657,663-664,667,670,673-675,677-682,684,690-691,694,697,700-701,703,705-707,710,712-716,718-720,722-724,726-727,729,732-733,738-745,749,756,759-760,762-763,765-766,769,772-773,775,777-779,781,785,788
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                                       4769    1733    36%
------------------------------------------------------------------------------

Comment on lines +222 to +229
if (!raw_ptr->data) {
RCLCPP_ERROR(
logger,
"CUDA message on topic '%s' has null data pointer. "
"Did you forget to cudaMalloc(&msg->data, size) before publish()?",
topic_name_.c_str());
std::abort();
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pointers allocated by cudaMallocManaged() can't be used for CUDA IPC.
__host__​cudaError_t cudaPointerGetAttributes ( cudaPointerAttributes* attributes, const void* ptr ) can be used for judging whether the given pointer 'ptr' has been allocated by cudaMalloc() (or cudaMallocPitch()) .

Unforunately, pointers allocated by cudaMallocAsync() can't be distinguished, while those pointers cannot be shared among multiple processes without sharing the whole memory pool behind them (not recommended for safety and other reasons).
For this problem, there are two options.

  • Use CUDA driver API cuPointerGetAttribute() with CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE to detect the error earlier and report it.
// Mandatory and low cost.
// Calling once per process after CUDA initialization is enough.
// Can be called multiple times with low cost.
cuInit(0);

CUcontext ctx;
cuCtxGetCurrent(&ctx);

if (ctx) {
    CUmemPool pool = NULL;
    CUresult res = cuPointerGetAttribute(&pool, CU_POINTER_ATTRIBUTE_MEMPOOL_HANDLE, (CUdeviceptr)ptr);
    if (res == CUDA_SUCCESS && pool != NULL) {
        // Ptr is a pointer allocated by cudaMallocAsync() from the pool.
    }
}
  • Do not mind about it here. Anyway, cudaIpcGetMemHandle() will fail later with inappropriate pointers.
    • The reason of failure reported will be less clear.

By the way, I think the documentation about usable pointer types needs clarification.

  • Pointers allocated by cudaMemAlloc() can be used.
  • Also pointers allocated by cudaMemAllocPitch() should be allowed, I think.
    • Good for handling 2D "Image" data.
  • Pointers allocated by cudaMemAllocAsync() cannot be used.
  • Pointers allocated by cudaMallocHost() cannot be used.
  • Other cudaMallocXXX() functions return pointers to dedicated types and those pointers cannnot be used.
    • C++ compilers allow implicit conversion from 'MyType *' to 'void *' without warning.

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