• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

OpenCyphal-Garage / cy / 24104463968
100%

Build:
DEFAULT BRANCH: main
Ran 07 Apr 2026 09:11PM UTC
Jobs 1
Files 1
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Apr 2026 09:07PM UTC coverage: 99.846% (-0.04%) from 99.884%
24104463968

push

github

web-flow
Add cy_can module implementing Cyphal/CAN (#48)

- Implement cy_can — a platform-agnostic Cyphal/CAN transport glue layer
backed by the new [libcanard
v5](https://github.com/OpenCyphal/libcanard/pull/258).

- Add cy_can_socketcan — a Linux SocketCAN backend providing the
cy_can_vtable_t implementation with poll-based I/O, non-blocking
sockets, and automatic CAN FD capability probing.

- Add comprehensive test suites for both cy_can (constructor validation,
pub/sub with pinned/verbatim topics, reliable RPC, redundancy
deduplication, backpressure retry, tombstone revival with extent
preservation, OOM/capacity failure paths) and cy_udp_posix (basic API,
pub/sub, RPC lifecycle, default constructor EUI-64 verification), all
built as 32-bit C99 Unity tests.

- Restructure examples to support runtime transport selection via
`iface=` argv parsing (`iface=socketcan:can0` or `iface=192.168.1.21`),
rename from `main_udp_*` to `example_*`, extract shared
`example_platform.h`, and decouple `cy.c` from transport libraries in
CMake

- Extend CI smoke test to run both UDP and vcan paths when a virtual CAN
interface is available.

## Key changes

- `cy.c`: reader extent is now max(incumbent, requested) during
tombstone revival, preventing extent shrinkage.

- `cy_platform.h`: document that platform must initialize extent to zero
or its initial value at reader construction; add reentrancy contract on
spin.

- `cy_udp_posix`: move static_asserts to file scope for C99
compatibility; add tombstone clarification comments; simplify `eui64.h`
to use POSIX `uname()` instead of platform-specific `/etc/machine-id`
and `sysctl`.

- `intrusive_fixture_utils.h`: propagate extent into
`cy_subject_reader_t.extent` field (was only stored in the test-local
struct).

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

478 of 478 branches covered (100.0%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

2109 of 2113 relevant lines covered (99.81%)

349496.79 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
99.85
-0.04% cy/cy.c
Jobs
ID Job ID Ran Files Coverage
1 24104463968.1 07 Apr 2026 09:11PM UTC 1
99.85
GitHub Action Run
Source Files on build 24104463968
  • Tree
  • List 1
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24104463968
  • ddf986c2 on github
  • Prev Build on main (#23854158869)
  • Next Build on main (#24141502030)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc