| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Simultaneous commits or reverts can race if they have overlapping
targets. This big lock synchronises entry into the Commit and Revert
critical sections across all cmd/hakurei processes.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This retries when seeing files opened by the dynamic linker. This will
eventually be replaced by a statically linked anchor program that never
opens any files on its own.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids swallowing error messages from failed container startups.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is much more precise than just simply checking the exit code.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This ensures that cmd/hakurei has finished cleanup and terminated before
validating the outcome of that cleanup.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was inadvertently placed inside the setscheduler loop due to
miscounting indentations.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids breaking ownership of lock files.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This implements retries of individual test cases and enables it for
pipewire and X tests. PipeWire and X server are quite flaky, and that
cannot be fixed by anything cmd/hakurei does.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These were pretty difficult to do properly in the nixos-based test
suite.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This runs much faster than the NixOS test suite, and is much more
precise. This also uncovered a recent severe pipewire regression.
This change removes all remaining deprecated nix code.
Closes #22.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This allows testing insecure configurations. This change also improves
error reporting and fixes non-startup-notification behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Used by some tests to inspect cmd/hakurei internals.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is only really used by the sandbox test suite for seccomp
validation. Make it optional here to simplify other use cases.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are too noisy and are not useful outside of debugging the test
suite itself, so silence them by default.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These helpers are useful across multiple test suites.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is a useful value to customise, primarily useful for test suites
but can also generally improve exit latency for stubborn applications.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This remains unsupported, but is useful during testing, or when
packaging for some particularly stubborn distros.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The Gitea web interface is no longer publicly accessible, so it no
longer matters that this code style does not render well on Gitea.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This also removes the interval and fixes the mustStart search criteria.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This exposes a race during simultaneous startup between chmod and
acl_set_file, where the ACL mask is clobbered by chmod.
This remained undiscovered until now due to the previous integration
test suite's complete inability to handle concurrency (the nixos vm test
machinery could not even support python multithreading).
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This improves compatibility. This change also improves error messages.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This structure is a lot less clumsy than the old nix-centric layout.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is mostly useful for the integration test suites.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This keeps archives deterministic across multiple jobs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
There will eventually be more endpoints for other CI workloads.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables use of non-cache cmd/mbf utils as root.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This obtains a fresh file descriptor on each attempt. Without resetting
it would end up endlessly appending to the buffer.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This accepts CI work over a shared read-only cache directory. This
replaces the nix CI service and prepares the removal of nix from the
test infrastructure.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
|
|
This implements an optional, alternative template layout to accommodate
ZFS and equivalent setups where each template occupies a different
filesystem. In such a setup, the default, separate workdir is unusable
as overlayfs requires the workdir to reside on the same filesystem as
the writable upperdir. The "merge" build tag enables this alternative
behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This name is less ambiguous than pkgserver.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This adds instructions and documentation for cmd/app itself and some example configuration for the typical desktop use case.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is a lot easier than grepping around. Verbose output is equivalent to assertion in the deprecated nix code.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for setting up new templates and apps.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This removes most redundant runtime arguments and is useful for cross-compilation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This recovers from inconsistent state on power loss and /tmp/ is not wiped on startup, or if hakurei somehow crashes.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Closes #43.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
There is generally no use case where any setup is required before init, and requiring the explicit function call is error-prone and unnecessary. It also causes trouble with packages using a similar trick. This change moves argv0 check early and makes it an import side effect. The stub will be removed in v0.5.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This removes potential footguns caused by mutable builtins without requiring unnecessary clones.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This fixes test cases affected by jsonv2 changes.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is theoretically susceptible to the PID race, but such an event is statistically impossible, and not exploitable in the intended use case, regardless.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The DCE is a slow and overcomplicated solution to a simple problem. This change replaces the DCE by resolving errors in-flight.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The readme document is pretty useless for anything other than the website, so replace it with something more relevant.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is cleaner for long-running daemon processes, and the additional information is more intuitive.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This greatly improves readability when lots of flags are registered.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This displays ongoing and complete cures via the notify channel.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|