Repository navigation
0.3.0: an object is a case, its type its kind; how a case is run stated with it - #4
Merged
Merged
Conversation
…ed with it; mtest.toml in the library's words Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
… engine and editors depend on Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
This was referenced Nov 8, 2026
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.
mtest 0.3.0 (mcpp-community/mcpp design 2026-11-08, W9): a case states in code what it is and what it needs; the runner acts on that statement and records what it did.
Library
UTest,E2E,CTS,BenchandSuite(of no kind) take a name, attributes and a body. An object is one case: listed with its attributes, scheduled by them, its body run when it is selected. Cases the body declares are under its name, inherit its attributes and are selectable alone; a scope that runs only for a selected case is reported only when its own statement fails (P3.4).suiteremains.timeout{},isolate{},retries{n},diagnose{.env, .limit}.shared<T>: made when a case first uses it; reported by thefixtureevent.Protocol (version 1, fields added, P9.2)
timeout,isolation,retries,diagnose; a case with no kind is of its program's.beginmay carrykind,tags,clauses; the scope rule.fixture.Engine
mtest explainnames the output), the run's timeline (--report-json'stimeline: start, duration and resources of each program).mtest.toml, the directory (docs/layout.md), unit.[cases."<glob>"]in the library's vocabulary (clauses,artifacts,isolation,retries,diagnose,skip,expect_fail); what the program states comes first.mcpplibs.mtest.manifest(the engine and editors depend on it without linking the test library); it reads suite types, the file's own derived suite types and attributes;list --staticagrees withlist(manifest/tests/listing.cpp).**/in discovery globs matches no directory too.Adapters
Bash (
--timeout,--isolate,--retries,--diagnose-env,--diagnose-timeout) and the C ABI state the same; neither statesunitfor a case of no kind.Tests:
lib/tests/suites.cpp(listing, scopes, inheritance, shared objects, the text against the listing), five engine cases (layout kinds, case time limits, static suites, isolation/retries/diagnosis, mtest.toml alignment, timeline); the conformance suite passes for the library, the Bash and Python fixtures, the C ABI and GoogleTest.Co-authored-by: speak-agent [email protected]