Repository navigation
0.20.0: over openkal-musl 0.29 and the OpenKal 0.25 implementations; tests on the mtest library - #70
Merged
Merged
Conversation
The step installed mcpp unpinned and received 2026.10.24.1, which openkal-run 0.5.4 refuses (requires mcpp >= 2026.11.9.1).
Sunrisepeak
force-pushed
the
feat/0.29.0
branch
from
November 9, 2026 22:45
7b097bd to
a6c82a7
Compare
3 tasks done
tests/ is a package beside the runtime, as the examples are, whose tests are mtest UTest objects above this runtime, openkal-musl and the system's openkal implementation: - cxx: examples/cxx's observations as one case (exceptions across frames, threads, filesystem names with volumes, links, random_device, thread_local destructors); the example stays the program the cross-builds carry. - hard_link: std::filesystem::create_hard_link over openkal-musl's link, the two names one file, a taken name refused, one name removed. - program_search: a program named without a separator is found by the system's conventions; on Windows hostname through a semicolon PATH and PATHEXT (openkal-musl 0.29.0, K11), elsewhere true past an absent entry of a colon PATH. CI runs them on Linux and on each host (Windows and macOS natively), writes mtest's report to each job's summary, keeps the store, and joins every job's runs in a report job. The engine is mcpp 2026.11.9.1.
tests/ reaches mcpplibs.os through the test library, and os states the
specification and the implementation by version; the trees are named by
the C library, which is not the root, and the engine refused the graph
("requested as both a path dep ... and a version dep ... Pick one").
The mtest action reads MTEST_VERSION and MTEST_SHA256 from .github/versions.env, so no workflow states the pin. The two jobs that run the tests report through .github/actions/test-report (the stores mcpp test kept, taken into one store of the job, the job's summary, the artifact), as mcpp's CI does, and the report job writes the workflow run's group (mtest ci report --group).
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
^0.29.0(released: 0.29.0: a program looked for by the system's conventions, link and linkat, the arrangement stated, openkal 0.25 openkal-musl#88, tag 0.29.0) on both target edges, and with it the OpenKal 0.25 implementations beneath: Linux 0.26, macOS 0.23, Windows 0.21, OpenSBI 0.9. Version 0.20.0; README updated.Tests on the mtest library
tests/is a package beside the runtime, as the examples are. The runtime's own build compiles libc++ with its own dialect flags, so a program that imports std is a consumer of what that build makes. Its tests are mtestUTestobjects above this runtime, openkal-musl and the system's openkal implementation:std::filesystem::create_hard_linkover openkal-musl'slink. It checks that the two names are one file (equivalent), that a taken name is refused, and that the file remains when one name is removed.hard_link_countis not asserted: openkal's node information carries no count of names, so it answers 1.hostnameis found as hostname.exe through a;PATH (an absent entry first) with PATHEXT set and with the default suffixes;hostname.exegiven with its suffix is found as given; a name found nowhere is not started; a suffixless non-program filehostnamein an earlier entry does not stop the search.trueis found past an absent entry of a colon PATH.CI runs the tests on Linux and natively on the Windows and macOS hosts. The mtest pin is in
.github/versions.env, which themtestaction reads, so no workflow states it. Each job reports through.github/actions/test-report: the storesmcpp testkept are taken into one store of the job, written to the job's summary and kept as an artifact. The report job writes the workflow run's group (mtest ci report --group). tools/branch-graph.sh also makes the tests' package name the stack's working trees from its root: mcpplibs.os, reached through mtest, states the specification and the implementation by version, and the engine refused a path from inside the graph against those versions.Test plan