qa: Improve functional test support on illumos and *BSD #35216

pull hebasto wants to merge 7 commits into bitcoin:master from hebasto:260505-illumos-bind changing 6 files +23 −7
  1. hebasto commented at 6:37 PM on May 5, 2026: member

    This PR is a follow-up to #34256. It extends functional test support to illumos-based OSes and fixes several related issues on the *BSDs.

    Changes:

    • Make lsof an optional functional test dependency via a new skip_if_no_lsof helper, consistent with other optional test deps.
    • Strip the CIDR prefix length from NetBSD ifconfig output (no-op on other platforms).
    • Suppress spurious lsof warnings on NetBSD.
    • Drop OpenBSD from the platforms supported by get_bind_addrs.
    • Document the lsof Test Suite Dependency for FreeBSD and NetBSD.
    • Add support for get_bind_addrs and feature_bind_extra on illumos.

    CI runs: https://github.com/hebasto/bitcoin-core-nightly/pull/280.

    Addresses #34256 (comment).

  2. hebasto added the label Tests on May 5, 2026
  3. DrahtBot commented at 6:37 PM on May 5, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35216.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept ACK fanquake
    Approach ACK l0rinc

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #35395 (doc: Improve test suite dependencies documentation by hebasto)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. hebasto marked this as a draft on May 5, 2026
  5. l0rinc commented at 9:41 AM on May 6, 2026: contributor

    code review ACK 9b7788b94d09fc368258b9b047a1842bc3dea8ed

  6. l0rinc commented at 12:45 PM on May 6, 2026: contributor
  7. fanquake commented at 10:20 AM on May 26, 2026: member

    Concept ACK - seems fine given such a small diff. Why is it a draft?

    Do we also need to trim the CIDR suffix, see https://github.com/hebasto/bitcoin-core-nightly/actions/runs/25427210121/job/74583785372#step:9:501?

    Seems like the NetBSD tests were also broken; should include those changes here?

  8. hebasto commented at 10:25 AM on May 26, 2026: member

    Why is it a draft?

    Seems like the NetBSD tests were also broken; should include those changes here?

    There are a few points to do:

    1. Check the fixed tests on NetBSD locally.
    2. Update the build documentation to mention the lsof package where needed.
  9. hebasto force-pushed on Jun 26, 2026
  10. in test/functional/test_framework/test_framework.py:1032 in b3a71f577f outdated
    1026 | @@ -1027,6 +1027,11 @@ def skip_if_platform_not_linux(self):
    1027 |          if platform.system() != "Linux":
    1028 |              raise SkipTest("not on a Linux system")
    1029 |  
    1030 | +    def skip_if_no_lsof(self):
    1031 | +        """Skip the running test if the lsof utility is not available on non-Linux platforms."""
    1032 | +        if sys.platform != "linux" and shutil.which("lsof") is None:
    


    l0rinc commented at 5:08 PM on June 26, 2026:

    b3a71f5 qa: Add skip_if_no_lsof helper and use it where needed:

    nit: the sys.platform != "linux" part indicates the name should probably be adjusted.

  11. l0rinc approved
  12. l0rinc commented at 6:25 PM on June 26, 2026: contributor

    The OpenIndiana logs show IPv6 bind failing (so it's likely not finished yet), but the change still makes sense, thanks for continuing the work on this.

    approach ACK, reviewed 943b232cf0912597bf8252f518489930166fa27b

  13. hebasto renamed this:
    qa: Support `get_bind_addrs` and `feature_bind_extra` on illumos
    qa: Improve functional test support on illumos and *BSD
    on Jun 27, 2026
  14. hebasto force-pushed on Jun 27, 2026
  15. hebasto marked this as ready for review on Jun 27, 2026
  16. qa: Add `skip_if_no_lsof_on_nonlinux` helper and use it where needed
    Some functional tests on non-Linux platforms rely on the `lsof` utility.
    However, we treat all other functional test dependencies, such as
    additional Python modules, as optional, and skip dependent tests if
    those are unavailable.
    
    This change makes `lsof` optional as well.
    8a982eea85
  17. qa: Drop OpenBSD from supported platforms in `get_bind_addrs` function 4cb7f39c2c
  18. doc: Add `lsof` to Test Suite Dependencies on FreeBSD 1c1735567e
  19. qa: Strip prefix length from NetBSD `ifconfig` output
    Modern NetBSD `ifconfig` prints interface addresses in CIDR notation
    (e.g. `inet 127.0.0.1/8`), unlike the other supported platforms which
    print the netmask as a separate field. The trailing prefix length breaks
    functional tests that expect a plain IP address.
    
    This change is a no-op on other platforms.
    70352fda03
  20. qa: Ignore `lsof` warnings on NetBSD
    On NetBSD, `lsof` can produce the following warnings:
    1. "created device cache file: ..." - usually happens in a CI
    environment.
    2. "compiled for NetBSD release 10.0; this is 10.1." or similar - when
    the `lsof` binary package is installed on a point release.
    
    This change suppresses both warnings printed to stderr and fixes the
    affected tests.
    5d01aa4772
  21. doc: Add `lsof` to Test Suite Dependencies on NetBSD 5e96a8fd5a
  22. qa: Support `get_bind_addrs` and `feature_bind_extra` on illumos
    This extends support for `get_bind_addrs` and `feature_bind_extra` to
    illumos-based OSes.
    f4a6d079c4
  23. hebasto force-pushed on Jun 29, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-07-09 06:47 UTC