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

cybertec-postgresql / vip-manager / 34616886942
91%

Build:
DEFAULT BRANCH: master
Ran 11 Sep 2026 03:35PM UTC
Jobs 1
Files 12
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

11 Sep 2026 03:34PM UTC coverage: 92.15% (+1.5%) from 90.661%
34616886942

push

github

web-flow
[+] send unsolicited IPv6 Neighbor Advertisements for IPv6 (#420)

* Send unsolicited IPv6 Neighbor Advertisements after IPv6 bound

* Rework to improve coverage.

* fix: resolve golangci-lint unused-parameter warnings

* Improve test coverage further

* Make the IPv6 Neighbor Advertisement tests actually exercise the NA path

The tests added alongside the unsolicited Neighbor Advertisement passed
without verifying anything. Every IPv6 case pinned the interface to `lo`,
which carries only 127.0.0.1/8 and ::1/128; ::1 is loopback, not
link-local unicast, so linkLocalAddress() failed, configureAddress()
logged a warning and returned early, and none of the packet assertions
ever ran. The IPv4 cases mocked linuxSendPacketWithProtocolFn while
configureAddress() called sendPacketLinux() directly, so those closures
never ran either.

Split linkLocalAddress() into the pure selector pickLinkLocal() plus a
thin lookup behind interfaceAddrsFn, route both address families through
the send seam, and assert in every test that the seam was actually
invoked. Reverting either seam now fails the suite instead of passing it.

Also on the IPv6 path:

- Is6() is true for IPv4-in-IPv6 addresses, so a ::ffff:a.b.c.d VIP took
  the NA path with a 16 byte target. Normalise the VIP with Unmap() when
  it is parsed, guard the branch with !Is4In6(), and fix getMask(), which
  handed such an address a /128 mask.
- Restore sll.Pkttype to PACKET_BROADCAST. The kernel ignores it on send,
  but PACKET_HOST is wrong for a broadcast ARP or a multicast NA, and the
  IPv4 path should not have changed here at all.
- Drop the unused serializeFn type and put its companion seam to work, so
  the compose-failure branches are covered.
- Record why the NA is sourced from the link-local address rather than the
  VIP: the VIP is still tentative under DAD right after `ip addr add`.
- Verify the ICMPv6 checksum against the IPv6 pseudo-header, and skip the
  privileged tests when iproute2 is absent ... (continued)

107 of 109 new or added lines in 3 files covered. (98.17%)

1033 of 1121 relevant lines covered (92.15%)

1.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
95.83
3.24% ipmanager/basicConfigurer.go
Jobs
ID Job ID Ran Files Coverage
1 34616886942.1 11 Sep 2026 03:35PM UTC 17
92.13
GitHub Action Run
Source Files on build 34616886942
  • Tree
  • List 12
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34616886942
  • 427a8ddc on github
  • Prev Build on master (#34482096606)
  • Next Build on master (#34860415203)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc