Repository navigation
0.8.0: where a case runs, stated by the case; capabilities answered by the program - #17
Merged
Merged
Conversation
…y the program
- only{} and except{} state the platforms and architectures of mcpplibs.os a case or a suite
runs on; elsewhere it is skipped with one reason. The script adapters and the C ABI state
the same; the engine skips a listed case outside its places without starting it.
- mtest re-exports mcpplibs.os's platform, architecture, can_run_on, host and on<P>: code for
one platform is selected when it is compiled, and an ok image decides when it is loaded.
- capability declares what a machine can do in code, by the tests of [capabilities] and a
function; the program answers it once per process under any runner, and a case lacking it
is skipped. The engine takes the program's answers and records them.
- A case event may carry reason, only, except and capabilities (P3.3; schema, conformance).
- mtest ci coverage requires a case to pass on each of its places a collected run covered.
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.
Summary
only{}/except{}: a case or a suite states the platforms and architectures (mcpplibs.os) it runs on; elsewhere it is skipped with one reason,only on windows (this host: linux x86_64). Suite and case narrow together. The Bash adapter (--only,--except), the Python adapter (only=,excepted=) and the C ABI (mtest_case_only,mtest_case_except) state the same; the engine skips a listed case outside its places without starting it.platform,architecture,can_run_on,hostandon<P>from mcpplibs.os.on<platform::windows>([&](auto) { ... })is discarded by a build for another platform; an ok image decides when it is loaded (AGENTS.md idea 6).capability: what a machine can do, declared once in code by the tests of[capabilities](system, architecture, programs, path globs, a command, environment,all/none) and a function; answered once per process by the program, under any runner (mtest,mcpp test, the program alone). A capability is an attribute ("links"_test[gcc], tagrequires:gcc); a missing one skips withmissing capability: gcc (no g++ on PATH).caseevent may carryreason(withexpect: skip),only,except,capabilities. The schema states them; the conformance suite checks them of every level-3 implementation (placedin each fixture).[capabilities]entry and is recorded in the run;mtest ci coveragerequires a case statingonlyto pass on each of its places a collected run covered, and some run to have been on one.Design record:
.agents/docs/2026-11-08-mtest-design.mdsection 14.Verification (local, linux x86_64)
mcpp test -p mcpplibs.mtest(newlib/tests/places.cpp, 5 cases),-p mcpplibs.mtest.manifest,-p mtest.mtest(52 cases, 3 new),-p conformance.x86_64-openkalimages.mtest runover mtest's own programs andmtest gate --set full; clang-format 22.1.8 clean.