since the test tree is statically known, we also statically know how many tests are present. we should hence be using this to provide a counter, say [1/48], to give a rough estimate as to when tests might finish. not a time estimate of course, since we can't determine that nota bene, we can't pass the current test count, and instead need to let the reporter deal with that, since otherwise we can't easily parallelize execution in the future. definitely mention this in a comment somewhere to elaborate on the design for the go reporter, ask ozy if go has any way to tell it this info. i doubt it since they don't have a statically known test count. if it does, then just send the count alongside the tree for the stream reporter, ignore it entirely; we don't even display successes by default so the number has nowhere to be attached to for the dom reporter, put it somewhere in the header, i think alongside the success/failure/skip count. something like “in progress (4/28)”. then once finalize() is called change the whole thing to “execution finished”
Hakurei is a tool for running sandboxed desktop applications as dedicated subordinate users on the Linux kernel. It implements the application container of planterette (WIP), a self-contained Android-like package manager with modern security features.
Interaction with hakurei happens entirely through structures described by package hst. No native API is available due to internal details of uid isolation.
Notable Packages
Package container is general purpose container tooling. It is used by the hakurei shim process running as the target subordinate user to set up the application container. It has a single dependency, libseccomp, to create BPF programs for the system call filter.
Package internal/pkg provides infrastructure for hermetic builds. This replaces the legacy nix-based testing framework and serves as the build system of Rosa OS, currently developed under package internal/rosa.
Dependencies
container depends on:
- libseccomp to generate BPF programs.
cmd/hakurei depends on:
- acl to export sockets to subordinate users.
- wayland to set up security-context-v1.
- xcb to grant and revoke subordinate users access to the X server.
cmd/sharefs depends on:
- fuse to implement the filesystem.
New dependencies will generally not be added. Patches adding new dependencies are very likely to be rejected.
NixOS Module (deprecated)
The NixOS module is in maintenance mode and will be removed once planterette is feature-complete. Full module documentation can be found here.