aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
AgeCommit message (Collapse)Author
9 daystest: synchronise before copying from vmOphestra
The swaymsg calls do not wait for process to terminate. Signed-off-by: Ophestra <cat@gensokyo.uk>
10 daysgo: 1.27Ophestra
This fixes test cases affected by jsonv2 changes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-07-07test: move nix filesOphestra
These are too much clutter. Move them to test directory until the test suite replacement is upstreamed. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-09cmd/hsu: remove parent checkOphestra
This check serves no real purpose and only makes it more difficult to start containers. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-08all: apply modernisersOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-07nix: work around systemd nondeterminismOphestra
NixOS switched to systemd initramfs by default. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-06-06nix: update flake lockOphestra
Was unfortunately not able to implement vm test suite before this release. Hopefully the last nixos update we have to follow. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-05-04container/initoverlay: configure via fsconfigOphestra
This works around the page size limit at the cost of negligible performance regressions. Closes #34. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-23nix: remove all explicit timeoutsOphestra
These were useful during development because timing out is often the only indication of failure due to the terrible design of nixos vm test harness. This has become a nuisance however especially when the system is under load, so remove explicit values and fall back to the ludicrously high default. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-11nix: add sharefs supplementary groupOphestra
This works around vfs inode file attribute race. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-08cmd/sharefs: group-accessible permission bitsOphestra
This works around the race in vfs via supplementary group. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-08cmd/sharefs: reproduce vfs inode file attribute raceOphestra
This happens in the vfs permissions check only and stale data appears to never reach userspace. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-04-07all: optionally forbid degrading in testsOphestra
This enables transparently degradable tests to be forced on in environments known to support them. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-30all: use filepathOphestra
This makes package check portable, and removes nonportable behaviour from package pkg, pipewire, and system. All other packages remain nonportable due to their nature. No latency increase was observed due to this change on amd64 and arm64 linux. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-28cmd/hakurei: rename app to runOphestra
The run command was a legacy holdover from very early days and is only useful for testing and demonstration these days. This change also renames it to exec. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-12hst: expose scheduling priorityOphestra
This is useful when limits are configured to allow it. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-12container: expose priority and SCHED_OTHER policyOphestra
The more explicit API removes the arbitrary limit preventing use of SCHED_OTHER (referred to as SCHED_NORMAL in the kernel). This change also exposes priority value to set. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-12hst: expose scheduling policyOphestra
This is primarily useful for poorly written music players for now. Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-10go: 1.26Ophestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-02-16nix: mount tmpfs on /tmpOphestra
This hopefully eliminates spurious test failures caused by /tmp running out of space. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-25cmd/sharefs: implement shared filesystemOphestra
This is for passing files between applications, similar to android /sdcard. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-15test: check shim private dir cleanupOphestra
This asserts that no shim private dir was left behind after all containers terminate. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-15internal/outcome: expose pipewire via pipewire-pulseOphestra
This no longer exposes the pipewire socket to the container, and instead mediates access via pipewire-pulse. This makes insecure parts of the protocol inaccessible as explained in the doc comment in hst. Closes #29. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-12nix: update flake lockOphestra
NixOS 25.11 introduces a crash in cage and an intermittent crash in foot. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08container/initdaemon: copy wstatus from wait4 loopOphestra
Due to the special nature of the init process, direct use of wait outside the wait4 loop is racy. This change copies the wstatus from wait4 loop state instead. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08cmd/hakurei: exec instead of fork/exec from shellOphestra
There is no reason to keep the shell process around. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08test/interactive: add app with bad daemonOphestra
This is useful for testing daemon error handling behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08treewide: include PipeWire op and enforce PulseAudio checkOphestra
This fully replaces PulseAudio with PipeWire and enforces the PulseAudio check and error message. The pipewire-pulse daemon is handled in the NixOS module. Closes #26. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-08hst: check for insecure PulseAudio enablementOphestra
This is currently still a noop, but required for #26. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-15nix: build with clangOphestra
Clang is better than gcc in various ways. This also pulls in clang-format which is very helpful. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-12test: move package sandbox internalOphestra
This should never be used outside vm tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-12container: set FD_CLOEXEC on all open filesOphestra
While fd created from this side always has the FD_CLOEXEC flag, the same is not true for files left open by the parent. This change prevents those files from leaking into the container. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-11container/init: close setup pipe earlyOphestra
This prevents leaking the setup pipe. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-10cmd/hakurei: expose current instance identifierOphestra
This writes the 16-byte instance identifier to file descriptor specified by --identifier-fd if set, and closes the file. This enables safely obtaining the new instance's identifier. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-05container: add 386 constantsOphestra
While it is unlikely a use case for hakurei on i686 exists, it does not hurt to have this support. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-04hst/grp_pwd: specify new uid formatOphestra
This leaves slots available for additional uid ranges in Rosa OS. This breaks all existing installations! Users are required to fix ownership manually. Closes #18. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02test: print share directoryOphestra
This is more useful now that state is tracked here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-11-02cmd/hakurei/print: serialise array for psOphestra
Wanted to do this for a long time, since the key is redundant. This also makes it easier to migrate to the new store interface. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-24hst/instance: embed config structOphestra
This makes the resulting json easier to parse since it can now be deserialised into the config struct. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-21test: assert hst CGO_ENABLED=0Ophestra
The hst package only deals with data serialisation, however since many parts of hakurei make use of C libraries in some way it can be easy to inadvertently depend on cgo. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-21test/interactive/trace: update nix attributeOphestra
Updated according to evaluation warning. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-19hst/container: optional runtime and tmpdir sharingOphestra
Sharing and persisting these directories do not always make sense. Make it optional here. Closes #16. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-19test: place marker in common pathOphestra
This discontinues the dependency on shared tmpdir and xdg_runtime_dir implementation detail, for #16. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-19internal/app/outcome: apply configured filesystems lateOphestra
This enables configured filesystems to cover system mount points. Closes #8. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-18internal/app/spruntime: emulate pam_systemd typeOphestra
This sets XDG_SESSION_TYPE to the corresponding values specified in pam_systemd(8) according to enablements. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-14test/sandbox: ignore nondeterministic mount pointOphestra
No idea what systemd is doing with this to cause its options to change. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-07hst/config: move container fields from toplevelOphestra
This change also moves pd behaviour to cmd/hakurei, as this does not belong in the hst API. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-10-05internal/app: check nscd socket for path hidingOphestra
This can seriously break things, and exposes extra host attack surface, so include it here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-09-25internal: remove sys packageOphestra
This package is replaced by container/stub. Remove and replace it with unexported implementation for the upcoming test suite rewrite. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-09-24test/sandbox: raise timeoutOphestra
The integration vm is being very slow for some reason. This change should reduce spurious timeouts. Signed-off-by: Ophestra <cat@gensokyo.uk>