ci: run exhaustive_tests for group orders 7 and 199 #1961

pull fametrano wants to merge 2 commits into bitcoin-core:master from fametrano:ci-exhaustive-orders changing 3 files +41 −2
  1. fametrano commented at 12:27 PM on October 11, 2026: contributor

    CI builds exhaustive_tests only for its default group order, 13. The other two orders in src/group_impl.h, 7 and 199, are never compiled. Order 7 is the even-order curve, where the ellswift tests are skipped.

    ci/ci.sh now rebuilds exhaustive_tests for EXHAUSTIVE_TEST_ORDER and runs it with EXHAUSTIVE_TEST_ARGS. A new job, exhaustive_debian, has two rows: order 7, and order 199.

    A full run at order 199 would take about 7 weeks on my machine: one part in 100000 takes 51 s, of which about 10 s is fixed cost. So the order 199 row runs one part in 20000, using the existing numcores and thiscore arguments. These come after the seed argument, so the seed is fixed. Every run still builds the order 199 tables and checks the whole group against ecmult_gen.

    The first commit removes an unused-function warning that order 7 would otherwise add to the CI log.

    I ran ci/ci.sh as the new rows do, with clang on an Apple M5 (macOS, no Docker): order 7 takes 15 s and order 199 takes 230 s, both including the build. I did not run the job on GitHub Actions or on Linux.

    Assisted-by: my usual tools (LLM, Internet, computer). Mistakes are mine.

  2. tests: don't define the ellswift exhaustive test for even-order curves
    With group order 7, the curve has even order and test_exhaustive_ellswift
    is defined but never called, which gives an unused-function warning.
    Include it only where it is called.
    
    Assisted-by: my usual tools (LLM, Internet, computer). Mistakes are mine.
    Signed-off-by: Ferdinando Ametrano <ferdinando@ametrano.net>
    46ef8714b3
  3. ci: run exhaustive_tests for group orders 7 and 199
    CI built exhaustive_tests only for its default group order, 13, so
    orders 7 and 199 were never compiled. Order 7 is the even-order curve,
    for which the ellswift tests are skipped.
    
    ci.sh rebuilds exhaustive_tests for the group order in
    EXHAUSTIVE_TEST_ORDER and runs it with EXHAUSTIVE_TEST_ARGS. Two new rows
    use it. Order 199 runs one part in 20000 of the tests, because the
    whole run would take weeks.
    
    Assisted-by: my usual tools (LLM, Internet, computer). Mistakes are mine.
    Signed-off-by: Ferdinando Ametrano <ferdinando@ametrano.net>
    a4f90fd4e1
  4. theStack added the label ci on Oct 18, 2026
  5. theStack added the label assurance on Oct 18, 2026
Contributors

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-10-20 04:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me