Releases: stephenberry/ut
Release list
v1.2.1
Fixes import std support, which is broken on current CMake releases in v1.2.0.
The library headers are unchanged from v1.2.0 — this is a build system release. If you use ut as headers only, there is nothing new for you.
Fixed
import std works across CMake releases again. v1.2.0 hardcoded a single experimental UUID valid for CMake 4.1/4.2, so UT_ENABLE_MODULES=ON failed to configure on CMake 4.3 and 4.4. The value is now chosen from the running CMake version, and an unrecognized release produces a message saying what to add rather than a confusing mismatch error. (#7, #9)
The gate can be overridden. Pass -DCMAKE_EXPERIMENTAL_CXX_IMPORT_STD=<uuid> to supply your own value — previously this was accepted and then silently ignored. (#12)
Added
Modules documentation for subproject consumers. CMake reads the gate while enabling CXX, so a project that pulls ut in with add_subdirectory() or FetchContent has already passed that point and must set the value before its own project() call. The README now covers this, with both forms and the error you get without it.
Build and CI
- Workflows updated to ubuntu-26.04, gcc 14/15, clang 21/22, MSVC 14.50 (#9)
- Third-party actions pinned to commit SHAs and token permissions narrowed to
contents: read, with Dependabot added to keep the pins current - Dropped stale CMake presets
Upgrading
Drop-in for existing users. Module users on CMake 4.3 or newer should upgrade — v1.2.0 cannot configure at all. If you consume ut as a subproject, see "Consuming ut as a subproject" in the README.
Thanks
- @DockedFerret800 for the CMake 4.3 compatibility fix (#7), the workflow modernization (#9), and for catching that the gate had to remain overridable (#11)
- @mccakit for making the case (#10) that pinning one UUID cannot work across CMake releases, which is what led to the version-keyed selection used here
v1.2.0
v1.1.0
What's Changed
- Now requires C++23
- Selective test running with UT_RUN by @stephenberry in #5
Running Specific Tests
Use the UT_RUN environment variable to run specific tests by name:
# Single test
UT_RUN="test name" ./my_tests
# Multiple tests
UT_RUN="[test1,test2,test3]" ./my_testsFull Changelog: v1.0.0...v1.1.0
v1.0.0
Version 1.0.0 Release
We are happy with the current set of features and stability to mark this 1.0
Fixes
- Remove null character from test name output by @stephenberry in #4
Full Changelog: v0.0.5...v1.0.0
v0.0.5
v0.0.4
Add UT_COMPILE_TIME definition to enable compile time testing. Runtime tests is now always on, but ran be opt-out with the consteval qualifier on tests.
Full Changelog: v0.0.3...v0.0.4
v0.0.3
- Using
std::exitrather thanstd::abortso that MSVC does not hang when unit tests fail.
Full Changelog: v0.0.2...v0.0.3
v0.0.2
Proper source location for test failures
Note: Fatal errors require C++23 for accurate source location reporting.