cest framework v5 brings bug fixes, Quality of Life improvements and new assertions to make more expressive tests easily.
External contributions
This release contains code contributed by external contributors. Thank you!
- Javier Moragón (@jamofer)
New features
- Add Win32 support with MinGW
- Add assertions for std::string_view
- Add assertions for std::path
- Add assertions for std::complex
- Add assertions for std::chrono
- Add assertions for std::unique_ptr and std::shared_ptr
- Add assertions for std::bitset
- Add assertions for std::multi~
- Add assertions for std::list and std::forward_list
- Add assertions for std::deque
- Add assertions for std::tuple and std::pair
- Add assertions for std::map and std::optional
- Add assertions for std::array
- Add assertions for std::map and std::unordered_map
- Add assertions for std::set and std::unordered_set
- Add --grep option to cest runner to test cases to run with
- Add todo() test definition
- Add xdescribe and fdescribe macros
- Add toEqualBytes() assertion for C structs without operator==()
- Add toHaveBitsSet() assertion for C style bitfields
- Add toBeInRange() assertion for comparable elements
Quality of Life improvements
- Gracefully support NULL C string assertions
- Support assertion of C array-like without pointer decay
- Add generic toBeGreaterThan() and toBeLessThan() assertions
- Review wording of assertion error messages
- Add callable assertions for exception handling
- Track per test duration and display in summary
- Support equality assertions of custom types without ostream operator overload
Fixes
- Add G++ 14.x support
- fix(suites): restore describe scope, allow sibling top-level suites and reject duplicate names (#81)
- Fix out-of-bounds write when reading child process output (#80) (Thank you @jamofer !)
- Fix typo in truthy and falsy assertions (Thank you @jamofer !)
Other
- Revamp CI/CD and release pipeline
- Compile with explicit -Wunused-value