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

stillwater-sc / universal / 32429280776
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 21 Aug 2026 12:16AM UTC
Jobs 1
Files 620
Run time 2min
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

20 Aug 2026 11:35PM UTC coverage: 85.353% (-0.01%) from 85.366%
32429280776

push

github

web-flow
fix(elreal): bound el_api_math's constants -- UBSan timeout on main (#1365)

* fix(elreal): bound el_api_math's constants -- UBSan timeout on main

main is red. #1362's UBSan job failed, and it is NOT a sanitizer diagnostic:
889 of 890 tests passed, zero runtime errors reported, and the single failure is
el_api_math hitting ctest's 300s per-test limit.

Cause is the same accidental coupling that hit el_math_sqrt. The test checks the
named constants against DOUBLE literals -- about 17 significant digits is the
whole question -- but calls elreal_pi(), elreal_e() and the rest at each
generator's own default depth: 16, and 32 for e. That was cheap while the
refinement floors stopped the series early. With the floors gone (#1051/#1362) a
default-depth constant refines to hundreds of digits, and the test went from 34s
to 114s at -O0. UBSan instrumentation on top of that clears 300s.

Measured at -O0: 34.2s before #1362, 113.9s after, 20.8s now -- below the
original baseline, so there is margin under instrumentation rather than a
borderline pass.

Two changes:

- mathlib.hpp: the ten elreal_* constant accessors take an optional depth.
  0 means "the generator's own default", so every existing caller is unaffected;
  verified directly -- elreal_pi() and elreal_e() with no argument still agree
  with pi_zbcl<double>() and e_zbcl<double>() digit for digit (260 and 319).
  The parameter exists because those defaults are now genuinely expensive and a
  caller who needs a few digits should be able to say so.

- elastic/elreal/api/math.cpp: the constant checks pass depth 3, which covers the
  double literals they compare against with room to spare.

46/46 elreal tests pass under gcc 13.3 and clang 18.1.

Worth recording: I merged #1362 while ASan, UBSan and Coverage were still
pending, having said those were the checks that mattered for it. The Debug run I
did instead confirmed the 0-overlap invariant, which was the correctness risk I
was actually worried about -- ... (continued)

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

8 existing lines in 1 file now uncovered.

43063 of 50453 relevant lines covered (85.35%)

7146985.69 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
93.65
-0.48% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 32429280776.1 21 Aug 2026 12:16AM UTC 620
85.35
GitHub Action Run
Source Files on build 32429280776
  • Tree
  • List 620
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32429280776
  • a10759c3 on github
  • Prev Build on main (#32422306642)
  • Next Build on main (#32445160313)
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