aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
AgeCommit message (Collapse)Author
2025-04-11test/sandbox: check device outcomeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-11sandbox: relative autoetc linksOphestra
This allows nested containers to use autoetc, and increases compatibility with other implementations. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-07app: improve shim process managementOphestra
This ensures a signal gets delivered to the process instead of relying on parent death behaviour. SIGCONT was chosen as it is the only signal an unprivileged process is allowed to send to processes with different credentials. A custom signal handler is installed because the Go runtime does not expose signal information other than which signal was received, and shim must check pid to ensure reasonable behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-04-01app: share path setup on demandOphestra
This removes the unnecessary creation and destruction of share paths when none of the enablements making use of them are set. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test: separate app and sandboxOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test: move test program to sandbox directoryOphestra
This prepares for the separation of app and sandbox tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test/sandbox: treat ESRCH as temporary failureOphestra
This is an ugly fix that makes various assumptions guaranteed to hold true in the testing vm. The test package is filtered by the build system so some ugliness is tolerable here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-30test/sandbox: separate check filterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-29test: build test program in nixos configOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox: check seccomp outcomeOphestra
This is as ugly as it is because it has to have CAP_SYS_ADMIN and not be in seccomp mode. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox/ptrace: generic filter block typeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox/ptrace: dump seccomp bpf programOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-28test/sandbox: expose test toolOphestra
Some test elements implemented in the test tool might need to run outside the sandbox. This change allows that to happen. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: separate test tool sourceOphestra
This improves readability and allows gofmt to format the file. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: check environmentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27test/sandbox: invoke check program directlyOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox/init: clear inheritable setOphestra
Inheritable should not be able to affect anything regardless of its value, due to no_new_privs. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26sandbox/init: drop capabilitiesOphestra
During development the syscall filter caused me to make an incorrect assumption about SysProcAttr. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26app: create XDG_RUNTIME_DIR with perm 0700Ophestra
Many programs complain about this. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26nix: create current-system symlinkOphestra
This is copied at runtime because it appears to be impossible to obtain this path in nix. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-26test: raise long timeout to 15 secondsOphestra
The race detector really slows down container tooling. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25nix: create opengl-driver symlinkOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25fst/sandbox: do not create /etc in advanceOphestra
This is now handled by the setup op. This also gets rid of the hardcoded /etc path. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25test: check revert type selectionOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25app: run in native sandboxOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-24test/sandbox: check mount table lengthOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-24test/sandbox: fix stdout tty checkOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-24test/sandbox: unquote fail messagesOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-24test/sandbox: fail on mismatched mount entryOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-24test/sandbox: verify outcome via mountinfoOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: warn about misuse in doc commentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: check mapuid outcomeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: check tty outcomeOphestra
This makes no difference currently but has different behaviour in the native sandbox. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: print mismatching file contentOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test: format path aid offsetsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: pass want file as argumentOphestra
This avoids building the check program multiple times. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-23test/sandbox: parse full test caseOphestra
This makes declaring multiple tests much cleaner. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-21test/sandbox: rename misleading bind destinationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-21test/sandbox: check type handling host_passthroughOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17nix: clean up flake outputsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16test: raise timeoutOphestra
Native container tooling is severely slowed down by race detector. Raise timeout so it reliably completes. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16test: run go tests with race detectorOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-13internal/app: rename init to init0Ophestra
This makes way for the new container init. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-13test: run go test under regular userOphestra
By default test vm commands run as root, this causes buildFHSEnv bwrap to cover some parts of /proc, making it impossible to mount proc in a mount namespace created under it. Running as a regular user gets around this issue. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-13test: print output of failed testOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-13test/sandbox: bypass fieldsOphestra
A field is bypassed if it contains a single null byte. This will never appear in the text format so is safe to use. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-12test/sandbox/mount: work around nondeterminismOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-09helper/proc: expose setup fileOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-04test/sandbox: check seccomp outcomeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-03test/sandbox: check fs outcomeOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>