Skip to content

0.23.0: a second name for a file, and the requests to end counted (openkal 0.25) - #46

Merged
Sunrisepeak merged 5 commits into
mainfrom
feat/0.25.0
Nov 9, 2026
Merged

Sunrisepeak merged 5 commits into
mainfrom
feat/0.25.0

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Test plan

  • Old suite: CI run 42675275497 green at 4951deb (this package's tests and the specification branch's conformance suite, as they were).

  • New suite: CI run 42679080116 green at 22eb398 — the conformance suite through the pinned mtest engine (one case per interface, its observations within it), mcpp test 2026.11.9.1 keeping this package's runs in the mtest store, each job's report in its summary, one report over every job.

  • Tests ported to the mtest library: CI run 42687668546 green at c097cb9 (dev and release profiles; the first attempt resolved mcpplibs.os before the index artifact carrying 0.4.3 was published, and the rerun of the same commit passed). Every file under tests/ declares its cases as UTest objects with the assertions it had; a test that starts a copy of itself declares the copy as a child and starts it with child_command (conformance_env_time, conformance_spawn, openkal_0_22, openkal_0_23, sigpipe_not_passed_on, stop_word_and_sigpipe); conformance_terminal is an mtest skip where no pseudo terminal can be opened, which it printed as not observed before. mcpplibs.mtest 0.5.2 is a dev-dependency; it reaches mcpplibs.os 0.4.3, whose ranges admit this package (0.23.0, standing for itself) and openkal 0.25.

  • After the switch to openkal = "0.25.0": CI run 42693763383 green at 5a745ca (each job substitutes the .spec checkout of the released specification for openkal). Also in this run: R1 wording and the stop handler's compare-and-exchange.

…enkal 0.25)

- kal_fs_hard_link: linkat with no flags; KAL_FS_PROP_HARD_LINKS on APFS and HFS+;
  a directory is kal_err_is_directory and two volumes kal_err_not_supported,
  answered before the kernel is asked
- the stop word counts each request and skips zero on wrap
- openkal follows the specification's branch feat/0.25.0 until 0.25.0 is released
- the conformance suite runs through the pinned mtest engine (MTEST, set by
  .github/actions/mtest): one case per interface, its observations within it
- mcpp 2026.11.9.1: `mcpp test` keeps this package's runs in the mtest store
  (target/mtest), one case per test program
- each job's runs in its summary and as an artifact; one report over every job

The test programs stay programs of their own (protocol level 0): the mtest
library reaches mcpplibs.os, which depends on openkal and on this
implementation, so a dev-dependency on it would close a cycle through the
package under test.
Every test under tests/ declares its cases as mtest UTest objects, with
the same assertions as before. A test that starts a copy of itself
declares what the copy does as a child and starts it with child_command.
A test that observes nothing where no pseudo terminal exists is skipped
there. mcpplibs.mtest 0.5.2 is a dev-dependency.
…hange

The README and the comment said two volumes were answered before the
call; the kernel answers them with EXDEV, which is reported as
kal_err_not_supported, and only a directory is refused before the call.

The stop handler counts and skips zero in one compare-and-exchange. An
add followed by a fix-up at the wrap could lose a count when a second
handler ran between the two.
@Sunrisepeak
Sunrisepeak merged commit 434df53 into main Nov 9, 2026
3 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