Repository navigation
2026.11.8.1: mtest's test protocol in mcpp test, tests without main, one std module builder per entry, lock targets per plan, identity-key manifests - #906
Merged
Conversation
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
… took (#874) Co-authored-by: speak-agent <[email protected]>
…uild (#874) Co-authored-by: speak-agent <[email protected]>
… exact release (#904) Co-authored-by: speak-agent <[email protected]>
…ck files fails the source check Co-authored-by: speak-agent <[email protected]>
… names the unquoted key (#904) Co-authored-by: speak-agent <[email protected]>
…self-ignoring project state directory (#874) Co-authored-by: speak-agent <[email protected]>
… and Windows by mcpp's own CI; an image is a release form, a native row a build target Co-authored-by: speak-agent <[email protected]>
…y; graph.cpp within its length Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…rkspace, as under -p A workspace's test plan holds a member's test programs only, so its own programs were never built and its tests found no MCPP_BIN_<NAME>. Each member's programs are built by the member's plan and named to that member's tests. Found by mtest's conformance suite. Co-authored-by: speak-agent <[email protected]>
openkal-image 0.5.3 enters an image in its convention's floating-point state (openkal SPEC 12.2); on Windows a thread began with the x87 at double precision, under which openkal-musl's strtod read 0.4 otherwise. Co-authored-by: speak-agent <[email protected]>
A test program that implements the mtest test protocol, version 1 -- its entry states test-protocol = 1, or its file carries the marker -- is told the protocol's variables and reports its cases: a run's record names the protocol and each case's result and failures, a case a crash left open failed, and the human report names the failed cases. --case PATTERN runs the matching cases, --cases lists them, --seed states the seed. A program that implements no protocol is one case and receives none of the variables. --no-run records each built test with its program and sources. (e2e 1035) Co-authored-by: speak-agent <[email protected]>
… interface in-process Every accessor reads through value_of: the innermost context's values, then the environment. A test of a build program's or a plugin's logic states the values in its own process. (e2e 1036) Co-authored-by: speak-agent <[email protected]>
…-protocol and mcpp::context docs/08 states the runner's side of the test protocol; docs/50 the record's protocol, cases, missing, listed, program and sources, the launch's protocol and the feature test-protocol; docs/04 the entry key; docs/30 mcpp::context. English and Chinese. Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…ers to begin a test with no main The skeletons' test is a file of mtest's cases with no main and the dev-dependency mcpplibs.mtest; --template lib writes a module, a partition it exports and its implementation, named after the package. An entry with test-main = true begins a test file that defines no main; the file's imports choose among offers, a dev-dependency's source that defines main (gtest_main.cc) begins a test as before, and two beginnings are refused. (e2e 1037) Co-authored-by: speak-agent <[email protected]>
…ailed run points to it An entry states its guide to writing tests with test-guide (the protocol's P2.5). --guide lists the package's frameworks with their guides and repositories and the commands for cases, or the contract and mtest when there is none; a failed run's report names it and a record carries guide. (e2e 1037) Co-authored-by: speak-agent <[email protected]>
…r dependencies by identity in one table Co-authored-by: speak-agent <[email protected]>
…Linux shard's suite step within 30 minutes Co-authored-by: speak-agent <[email protected]>
… table Co-authored-by: speak-agent <[email protected]>
… runner before the stop Co-authored-by: speak-agent <[email protected]>
…its parent or child is not deprecated mcpplibs.mtest and mcpplibs.mtest.gtest in one table cannot both be unquoted: one name would be a value and a table. (#904; e2e 1032) Co-authored-by: speak-agent <[email protected]>
…; a dependency's entry that imports std builds std gtest_main.cc of compat.gtest beneath the GoogleTest adapter was linked beside the adapter's main; a framework's entry that imports std failed when nothing else imported it. (e2e 1037) Co-authored-by: speak-agent <[email protected]>
…brary Co-authored-by: speak-agent <[email protected]>
…the record of this round Co-authored-by: speak-agent <[email protected]>
…hered once per member Co-authored-by: speak-agent <[email protected]>
…ose module edges are unchanged is not compiled again (#874) Co-authored-by: speak-agent <[email protected]>
…led test names a module nothing provides; a stale product is out of a program's way Co-authored-by: speak-agent <[email protected]>
…run the tests a change affects Co-authored-by: speak-agent <[email protected]>
…en E2E_MTEST names one; tests that change the machine's state hold it Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…files keep their paths, and build and test are one configuration Co-authored-by: speak-agent <[email protected]>
…ory, a pull request's by its change; unit tests of a pull request by its change; the nightly e2e coverage map Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…when it has no runner Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…ant states Co-authored-by: speak-agent <[email protected]>
… the layout of tests Co-authored-by: speak-agent <[email protected]>
… it runs Co-authored-by: speak-agent <[email protected]>
…cases a listed case declares Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…gram; the quoted-key warning names the key Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…states; 234 holds the machine Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
… beginning once Co-authored-by: speak-agent <[email protected]>
…nd their jobs Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
…text output ends a line with Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Co-authored-by: speak-agent <[email protected]>
Sunrisepeak
marked this pull request as ready for review
November 8, 2026 19:04
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.
Draft. This PR collects mcpp 2026.11.8.1; the items still open are listed at the end.
In this PR
targetschange only with the configurations a command plans. A partial workspace build no longer treats the request as the plan scope.[dependencies]table of identity keys with exact versions. A quoted dotted dependency key is now the deprecated readingquoted-dotted-dependency-key(since 2026.11.8.1, removed from 2027.2): the build warns and names the unquoted key, andmcpp why compatlists the use.examples/02-with-depsuses the recommended form.#include.--older-than) collectstdmodule entries;[build] target_budgetkeepstarget/within a size.<project>/.mcpp/gets a.gitignoreof*.*-openkalrows areverified. Test 1033 builds both rows and runs the image of the host's architecture with the platform's layers.tests/e2e/host-requirements.tsvrequires it to pass on Linux, macOS and Windows (enforced bycheck_e2e_coverage.py). Before this, mcpp's own CI ran images on Linux only.Tests
New e2e tests: 1027–1033. Each passes with this branch's binary, and 1027–1030 and 1032 fail with 2026.11.7.2.
Still to come in this PR
mcpp.corecontext injection and the build-graph query.mcpp new's mtest template (after mtest 0.1.0).