Repository navigation
Chevron Unit Testing Setup - #7
Merged
Merged
Conversation
- Added unit test and stress test target creation helpers - Still needs benchmark target helper (incomplete) - Established and applied standard approach for CMake module file headers; TODO: to be applied everywhere else later
Includes new project testing helper module before subdirectories
- Moved GoogleTest and Google Benchmark interface targets to the utility helper - Added dividers in module using comments
Stashes initial testing setup attempt in diff file for review later. Chevron testing will be handled with LLM agent assistance. Testing utilities/helpers remain in-place from this branch.
Experiencing issues on Linux with Neovim and Clangd LSP, which needs access to the projects compile commands to be effective. Chevron uses a multi-config build directory which complicates this across machines. These new additions makes it so that the compile commands document is copied to the project root to provide easy access for LSPs and tooling.
Added Linux script that surfaces project standard incomplete work markers using Ripgrep. Windows equivalent script due soon.
Locally imported Chevron project from Anthropics claude.ai website for agent reference and design context. These will not be hosted in the repository forever, but won't be going anywhere any time soon. Contains the historic Chevron design project and its documents, project memory, and project conversations. Also includes an interaction guide for AI agents to effectively navigate the contents.
Document that will be used as an exhaustive list of open Chevron design questions. At the moment it likely lacks many other listings, but these are expected to emerge over time. Consider this "incomplete"
Created an AI agents document for Chevron to assist in testing efforts and general cooperative development.
Introduces three specific agents for Chevron development: "Repository Q&A" agent, "Test Designer" agent, and "Architect" agent. Each have distinguished responsibilities and permissions within the project.
Section dedicated to ensuring agents clearly and effectively communicate about Chevron using established vocabulary, known terminology, announcing when newly introduced language is proposed, etc.
Added wc and safe variants of find to autonomous permissions. (not a big fan of the shared permissions situation)
- Adjusted baseline autonomous command permission configuration for python, sed, grep, and git - Added note to Q&A agent instructions about creating temporary artifacts to compile findings in the process of conducting its investigation
Added Doxygen conventions document for both developers and agents
Removed unnecessary white space character
- Adds new test reviewing subagent (Test Reviewer) whose purpose is to review the Test Designer agents produced tests through a different lens. - Permits the Test Designer agent to invoke the Test Reviewer agent as part of its test verification process. Additionally provides more guidance on what the intended Test Designer workflow is. This is not strictly imposed on users. - Adjusted baseline autonomous command permission configuration for `which` and `stat`. - Autonomous `ctest` execution permission given to Test Designer, Test Reviewer, and Architect agents. Permissions on these commands vary between roles. - Cosmetic fixes made in agent role documents.
Added project script that allows easy selective execution of the testing facilities
Introduces Chevron's first unit tests and the initial testing structure and enables CTest registration.
No longer necessary
jamon-bailey
marked this pull request as ready for review
September 9, 2026 23:21
Added single test selection using a directory and test suite/name pair.
Provides agents autonomous `build`, `configure`, `test`, and `todos` script execution permission. In the "Repository Q&A" agents case, both `build` and `configure` are denied considering the strict read-only role. NOTE: The "Test Reviewer" is STILL allowed `build` and `configure` considering the responsibilities of its role.
Added directory based suite selection
Added documentation and strengthen tests across both starting test files
Added developer sandbox executable launch option
Enforces that agents use the Chevron testing script to run tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Library Unit Testing Facilities
This introduces the baseline setup for unit testing the Chevron library through GoogleTest. A new "Testing Helper Module" was created for the projects CMake build system to simplify the testing target creation process and make test target intent clear through custom helper functions. The inclusion of this module automatically handles the addition of both GoogleTest and Google Benchmark third-party directories, as well as establishing both targets. In fact, this accommodates the entire testing directory.
Chevron will begin experimenting with cooperatively establishing some of its testing with the assistance of LLM agents under human supervision. This decision stems from the libraries philosophy about adequate modern tools fostering a high quality development environment. This update introduces an agents document that provides necessary context to agents to effectively assist with the repository. It also introduces an OpenCode setup which features custom Repository Q&A, Test Designer, and Architect agent roles, each of which are designed to have different focuses on the Chevron development process. There is also a fourth Test Reviewer subagent which is designed to guide the efforts of humans or agents on test contributions. ALL FOUR OF THESE AGENTS ARE EXPERIMENTAL AND SHOULD NOT BE RELIED ON.
The largest addition from this update is roughly 13 MB of exported Claude.ai design conversations on Chevron's architecture for agent context. These transcripts should not be expected to be around forever, at a certain point they will no longer be useful and will be removed. For the time being, the exported archive has proven useful helping agents effectively assist when historic information was relevant.
The first set of unit tests target the existing bit-related utility helpers and act as a working reference for how tests are supposed to be structured and wired into the project. There are currently 5 tests failing:
IsPowerOfTen.ReturnsTrueForPowersOfTenIsPowerOfTen.CorrectEvaluationAcrossUnsignedWidthsPowerOfTwoCeil.ReturnsUnchangedForPowersOfTwoPowerOfTwoCeil.RoundsUpToNextPowerOfTwoPowerOfTenCeil.RoundsUpToNextPowerOfTenThese stem from three underlying bugs in the bits utilities facility that then cause the additional two cascade failures. These fixes will be applied in a dedicated branch following this branches merge.