Skip to content

0.2.0: discovered groups, case attributes, shards, the coverage map and the static case manifest - #3

Merged
Sunrisepeak merged 5 commits into
mainfrom
release/0.2.0
Nov 8, 2026
Merged

Sunrisepeak merged 5 commits into
mainfrom
release/0.2.0

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

mtest 0.2.0, the mtest part of mcpp's top-level design W8 (mcpp-community/mcpp, .agents/docs/2026-11-08-ecosystem-top-level-design.md).

Changes

  • [discover.<name>]: every file a glob matches is a program run by a command ({path}, {name}), with the keys of [programs.*]; tags_from and resources_from read tags and resources from each file's first lines (# requires: gcc → requires:gcc). kind states an L0 program's case kind. mcpp's 720 e2e scripts become one group.
  • Case attributes: [cases."<glob>"] in mtest.toml and [package.metadata.mtest.cases."<glob>"] in a host's mcpp.toml state tags, resources, kind and timeout, taking precedence over a program's listing.
  • --shard I/N: longest-first assignment of programs to the part with the least expected time, from the store's history; the same parts on every machine with the same store.
  • The coverage map (docs/coverage.md): mtest run --coverage gives each program a GCOV_PREFIX directory, reads GCC's .gcda arc counters (a negative length is a run of zero counters, GCC 12+) and maps executed objects to sources through a compile database; affected selection reads the map (a stale map is not read, so it widens and never narrows); mtest coverage show|import and mtest store import carry it.
  • The static case manifest: mcpplibs.mtest.manifest reads "name"_test literals, their attributes, named suites and nested cases from source text; mtest list --static lists a project's test files with it, building nothing. A build plugin is not used: mcpp keeps [package.metadata.mtest] for the tool, and the engine and an editor read the same text.
  • Version 0.2.0 throughout; CHANGELOG; docs/config.md, docs/commands.md.

Verification (local)

  • mcpp test -p mcpplibs.mtest (4 new manifest cases), -p mtest.mtest (21 cases, 6 new: groups, shards, the coverage map with synthetic and real GCC .gcda files, list --static), -p conformance with the Bash fixture; clang-format 22.1.8 clean.

Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com

Sunrisepeak and others added 5 commits November 8, 2026 10:48
…nd the static case manifest

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…t; one that writes no program event is L0

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…ge cannot be read

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit ff67991 into main Nov 8, 2026
8 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