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

bemanproject / expected / 39300948700
98%

Build:
DEFAULT BRANCH: main
Ran 19 Oct 2026 06:23PM UTC
Jobs 1
Files 3
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

19 Oct 2026 06:15PM UTC coverage: 97.529%. Remained the same
39300948700

push

github

web-flow
Test the reflection path of type_name on gcc 16, with coherent flags (#107)

Closes #88.

`tests/beman/expected/testing/type_name.hpp` has two implementations of
the same contract: P2996 reflection, and a fallback that recovers names
from `std::source_location`. It picks reflection only when the compiler
and the library both offer it. Only `cmake/gcc-16-toolchain.cmake` adds
`-freflection`, and neither CI nor the presets use that file, so the
reflection path was never tested there.

### Changes

`-freflection` changes the language, so it is set for the whole build,
never for one target or directory. The library and the fetched Catch2
get it too. If one translation unit saw reflection and another didn't, a
header that branches on it would be defined two ways: an ODR violation
that needs no diagnostic.

- **CI:** a new gcc 16 / `c++26` job,
`Debug.-DCMAKE_CXX_FLAGS=-freflection`. The reusable workflow's
toolchain sets only the per-configuration flags, so this reaches every
compile without displacing anything.
- **Presets:** new `gcc-16-debug` and `gcc-16-release`. They configure
through `cmake/gcc-16-toolchain.cmake`, which pins `g++-16` and C++26
and already adds the flag. `gcc-16-debug` is plain Debug, because that
toolchain doesn't implement the infra sanitizer selection.
- **Test:** `type_name.test.cpp` declares its check only when the
compiler has reflection (`__cpp_impl_reflection`), and then requires
that the reflection implementation was selected. Without the check,
falling back would be silent: every other test still passes, for example
if the library's `__cpp_lib_reflection` went unseen. A build that forces
an implementation with `BEMAN_EXPECTED_TESTING_TYPE_NAME_USE_REFLECTION`
is left alone.

Every other configuration keeps covering the fallback.

### Tested locally

- **`cmake --workflow --preset gcc-16-debug`:** `-freflection` is on all
197 compile commands, and 1250/1250 tests pass, the reflection check
included.
- **CI-like build** (g++ ... (continued)

829 of 850 relevant lines covered (97.53%)

22.91 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39300948700.1 19 Oct 2026 06:23PM UTC 3
97.53
GitHub Action Run
Source Files on build 39300948700
  • Tree
  • List 3
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39300948700
  • 5a81f7ff on github
  • Prev Build on main (#39288820158)
  • Next Build on main (#39364816433)
  • Delete
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