feat: zero-shell self-contained workspace (real per-lib test projects)#59
Merged
Conversation
Each tests/examples/<lib>/ becomes a real mcpp TEST project: [dependencies] compat.<lib> + tests/*.cpp behavioral assertions (no src/). Driven entirely by mcpp, no shell: - cjson: build→serialize→parse, assert fields - eigen: header-only linear algebra (det/solve) - nlohmann.json: dump→parse round-trip + ordered_json - openblas: cfg(windows) cblas_dgemm [19 22;43 50] (no-op off-Windows) - build-mcpp: assert build.mcpp's generated source + define took effect CI (needs mcpp 0.0.79: workspace-aware test + build.mcpp cwd fix): - smoke-workspace runs 'mcpp test --workspace'; smoke-examples 'mcpp test -p <lib>' - deleted tests/run_workspace.sh + tests/run_example.sh; MCPP_VERSION -> 0.0.79 Kept (broader/display matrix, migrate later): smoke_compat_*.sh. eigen drops the eigen_blas dgemm assert — feature-built dep objects don't link into test binaries yet (mcpp follow-up). See design doc §9. (held until mcpp 0.0.79 is released — CI downloads the released binary)
…cpp workspace Migrates every smoke_compat_*.sh into real per-library test projects and rebuilds CI around 'mcpp test --workspace'. The index's whole test surface is now the workspace; no shell drivers remain (except the documented imgui-module exception). New members (faithful migration of the smoke heredocs): - core: gtest + ftxui + lua + mbedtls + opengl/khrplatform (per-OS ldflags via cfg) - archive: libarchive + zlib/bzip2/lz4/xz/zstd (versions + round-trip) - imgui: headless in-memory ImGui frame - gui-stack: glfw + X11/XCB stack (xext/xrender/.../xau/xdmcp/xcb/x11), linux via cfg - imgui-window: imgui+glfw+GL3 backends build+link (window run opt-in), linux via cfg cjson/eigen/nlohmann drop the gcc pin so they run cross-platform (auto toolchain). CI: validate.yml collapses smoke-full-linux/smoke-portable/smoke-examples/ smoke-workspace into ONE 'workspace' matrix (linux/macos/windows) running 'mcpp test --workspace' — members self-gate by [target.cfg]. Deleted 5 smoke scripts. Kept smoke_imgui_module.sh: the public imgui module package has an empty namespace (builtin index), not yet mappable to a local path in a workspace member. Verified locally (mcpp 0.0.79): mcpp test --workspace → all 10 members pass. See .agents/docs/2026-06-30-complete-test-ci-rearchitecture.md.
…timeout-minutes bounds it)
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.
What
Realizes 基于 mcpp 自包含 + 消除所有 shell + 支持 -p 单独运行: the mcpp-index repo is now both the package index AND a mcpp workspace whose members are real test projects that genuinely use and test each library — driven entirely by
mcpp, no shell driver.Requires mcpp 0.0.79 (workspace-aware
mcpp test+ the build.mcpp cwd fix).Changes
tests/examples/<lib>/is now[dependencies] compat.<lib>+tests/*.cppwith behavioral assertions (nosrc/):ordered_jsoncfg(windows)cblas_dgemm[19 22; 43 50](no-op off-Windows)build.mcpp's generated source + define took effectsmoke-workspacerunsmcpp test --workspace;smoke-examplesrunsmcpp test -p <lib>. Deletedtests/run_workspace.sh+tests/run_example.sh.MCPP_VERSION→ 0.0.79.Verified locally (mcpp 0.0.79)
mcpp test --workspace→ 5/5 members pass;mcpp test -p <lib>works per member.Scope / follow-ups (design doc §9)
smoke_compat_*.sh(imgui/glfw need a display; libarchive/zlib broader matrix) — migrating those to headlessmcpp testmembers is a later increment.eigen_blasdgemm_assert: feature-built dependency objects don't link into test binaries yet (a separate mcpp follow-up).