Problem
The Second Life viewer currently uses the tut unit test framework, which is no longer maintained. As a result, we face several issues:
- Diminishing community support and updates
- Limited features and poor failure diagnostics
- We need to maintain our forked and modified version of tut
Replacing tut with a more modern and maintained framework will improve testability, developer experience, and long-term maintainability.
Solution
Replace tut with doctest, a lightweight, single-header C++ testing framework that offers clearer output, and a more modern and flexible approach to writing and organizing tests.
Migration plan
- Remove the
tut dependency from the viewer build.
- Add the doctest header to the viewer repository (as it is header-only).
- Port all existing
tut tests to doctest.
- Ensure tests are discoverable and executable via
ctest.
- Document the new test framework and example usage for contributor onboarding.
- Ensure CI/CD passes and is correctly integrated with tests
Alternatives considered
- GoogleTest: Heavier and slower to compile; requires linking and additional setup
- Catch2: Similar to doctest but slightly heavier and not header-only in newer versions
Reward
Please follow our reward guidelines if you would like to be compensated for completing this task.
This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting /reward 100 (replace 100 with the amount).
🕵️♂️ If someone starts working on this issue to earn the rewards, they can comment /try to let everyone know!
🙌 And when they open the PR, they can comment /claim #4445 either in the PR description or in a PR's comment.
🪙 Also, everyone can tip any user commenting /tip 20 @bennettgoble (replace 20 with the amount, and @bennettgoble with the user to tip).
📖 If you want to learn more, check out our documentation.
Problem
The Second Life viewer currently uses the tut unit test framework, which is no longer maintained. As a result, we face several issues:
Replacing
tutwith a more modern and maintained framework will improve testability, developer experience, and long-term maintainability.Solution
Replace
tutwith doctest, a lightweight, single-header C++ testing framework that offers clearer output, and a more modern and flexible approach to writing and organizing tests.Migration plan
tutdependency from the viewer build.tuttests todoctest.ctest.Alternatives considered
Reward
Please follow our reward guidelines if you would like to be compensated for completing this task.
This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting
/reward 100(replace100with the amount).🕵️♂️ If someone starts working on this issue to earn the rewards, they can comment
/tryto let everyone know!🙌 And when they open the PR, they can comment
/claim #4445either in the PR description or in a PR's comment.🪙 Also, everyone can tip any user commenting
/tip 20 @bennettgoble(replace20with the amount, and@bennettgoblewith the user to tip).📖 If you want to learn more, check out our documentation.