Skip to content

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
Sunrisepeak merged 63 commits into
mainfrom
release/2026.11.8.1
Nov 8, 2026
Merged

Sunrisepeak merged 63 commits into
mainfrom
release/2026.11.8.1

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Draft. This PR collects mcpp 2026.11.8.1; the items still open are listed at the end.

In this PR

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

Sunrisepeak and others added 30 commits November 8, 2026 02:18
…ck files fails the source check

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]>
…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]>
…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]>
…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]>
…the record of this round

Co-authored-by: speak-agent <[email protected]>
…ose module edges are unchanged is not compiled again (#874)

Co-authored-by: speak-agent <[email protected]>
Sunrisepeak and others added 27 commits November 8, 2026 11:17
…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]>
…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]>
…cases a listed case declares

Co-authored-by: speak-agent <[email protected]>
…gram; the quoted-key warning names the key

Co-authored-by: speak-agent <[email protected]>
…states; 234 holds the machine

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]>
@Sunrisepeak
Sunrisepeak marked this pull request as ready for review November 8, 2026 19:04
@Sunrisepeak Sunrisepeak changed the title 2026.11.8.1 (draft): lock targets per plan, identity-key manifests, target budget, verified openkal rows 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 Nov 8, 2026
@Sunrisepeak
Sunrisepeak merged commit 2211fb5 into main Nov 8, 2026
232 of 234 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant