Skip to content

Chevron Unit Testing Setup - #7

Merged
jamon-bailey merged 29 commits into
v0.xfrom
testing-setup
Sep 18, 2026
Merged

jamon-bailey merged 29 commits into
v0.xfrom
testing-setup

Conversation

@jamon-bailey

@jamon-bailey jamon-bailey commented Aug 31, 2026 •

Copy link
Copy Markdown
Member

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.

"Agent assistance is helpful to Chevron when humans are in the driver seat."

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.ReturnsTrueForPowersOfTen
  • IsPowerOfTen.CorrectEvaluationAcrossUnsignedWidths
  • PowerOfTwoCeil.ReturnsUnchangedForPowersOfTwo
  • PowerOfTwoCeil.RoundsUpToNextPowerOfTwo
  • PowerOfTenCeil.RoundsUpToNextPowerOfTen

These 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.

jamon-bailey and others added 6 commits May 24, 2026 00:47
- 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.
@jamon-bailey jamon-bailey added this to the Testing Foundations milestone Aug 31, 2026
@jamon-bailey jamon-bailey self-assigned this Aug 31, 2026
@jamon-bailey jamon-bailey added enhancement New feature or request Update An update for the main branch labels Aug 31, 2026
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.
@jamon-bailey
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
@jamon-bailey
jamon-bailey merged commit e12f95d into v0.x Sep 18, 2026
10 checks passed
@jamon-bailey
jamon-bailey deleted the testing-setup branch September 18, 2026 01:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Update An update for the main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant