9fd97e71d0
treewide: fit test untyped int literals in 32-bit
...
This enables hakurei test suite to run on 32-bit targets.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-11-05 20:13:19 +09:00
c1399f5030
std: rename from comp
...
Seccomp lookup tables are going to be relocated here, and PNR constants.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-11-05 02:47:43 +09:00
ae66b3d2fb
message: rename NewMsg to New
...
Should have done this when relocating this from container. Now is a good time to rename it before v0.3.x.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-11-03 01:49:27 +09:00
e94acc424c
container/comp: rename from bits
...
This package will also hold syscall lookup tables for seccomp.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-21 20:54:03 +09:00
048c1957f1
helper/args: variadic check function
...
This package turns out to be much less widely used than anticipated, and might be facing removal. This change makes test cases cleaner.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-14 01:48:56 +09:00
790d77075e
system/dbus: remove builder state leak
...
This enables external testing of system.I state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-14 01:33:44 +09:00
7638a44fa6
treewide: parallel tests
...
Most tests already had no global state, however parallel was never enabled. This change enables it for all applicable tests.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-13 04:38:48 +09:00
763ab27e09
system: remove tmpfiles
...
This is no longer used.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-13 01:12:44 +09:00
037144b06e
system/dbus: use well-known address in spec
...
The session bus still performs non-standard formatting since it makes no sense for hakurei to start the session bus.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-11 18:52:06 +09:00
87b5c30ef6
message: relocate from container
...
This package is quite useful. This change allows it to be imported without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-09 05:18:19 +09:00
9b507715d4
hst/dbus: validate interface strings
...
This is relocated to hst to validate early.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-08 04:57:22 +09:00
584ce3da68
container/bits: move bind bits
...
This allows referring to the bits without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-07 21:38:31 +09:00
0e6c1a5026
container/check: move absolute pathname
...
This allows use of absolute pathname values without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-07 20:57:58 +09:00
d23b4dc9e6
hst/dbus: move dbus config struct
...
This allows holding a xdg-dbus-proxy configuration without importing system/dbus.
It also makes more sense in the project structure since the config struct is part of the hst API however the rest of the implementation is not.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-07 19:03:51 +09:00
3ce63e95d7
container: move seccomp preset bits
...
This allows holding the bits without cgo.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-07 18:28:20 +09:00
8ace214832
system/wayland: hang up security-context-v1 internally
...
This should have been an implementation detail and should not be up to the caller to close.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-05 03:25:13 +09:00
9462af08f3
system/dbus: dump buffer internally
...
This should have been an implementation detail and should not be up to the caller to call it.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-04 20:31:14 +09:00
d16da6da8c
system: enforce absolute paths
...
This is less error-prone, and is quite easy to integrate considering internal/app has already migrated to container.Absolute.
Closes #11 .
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-10-03 02:26:14 +09:00
44ba7a5f02
hst/enablement: move bits from system
...
This is part of the hst API, should not be in the implementation package.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-29 06:34:29 +09:00
46cd3a28c8
container: remove global msg
...
This frees all container instances of side effects.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-29 06:11:47 +09:00
6265aea73a
system: partial I inherit dispatcher
...
This enables I struct methods to be checked.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-11 02:02:31 +09:00
c8a0effe90
system/wayland: use syscall dispatcher
...
This enables wayland op methods to be instrumented.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-11 01:48:18 +09:00
8df01b71d4
system: remove test package
...
This prepares the Commit and Revert methods for testing via stub.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-10 23:50:22 +09:00
985c4dd2fc
system/xhost: wrap revert error correctly
...
This otherwise creates a confusing error message on a revert failure.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-08 04:17:39 +09:00
da2b9c01ce
system/tmpfiles: do not fail for smaller files
...
The limit is meant to be an upper bound. Handle EOF and print verbose message for it instead of failing.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-08 03:22:10 +09:00
323d132c40
system/mkdir: use syscall dispatcher
...
This enables mkdir op methods to be instrumented.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 22:30:08 +09:00
6cc2b406a4
system/link: use syscall dispatcher
...
This enables hardlink op methods to be instrumented.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 19:47:58 +09:00
fcd0f2ede7
system/output: pass through LinkError
...
This has similar formatting to PathError.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 17:41:06 +09:00
e68db7fbfc
system: unexport Op implementations
...
None of these are valid with their zero value, and the implementations assume they are created by the builder methods. They are by all means an implementation detail and exporting them makes no sense.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 16:16:03 +09:00
ac81cfbedc
system/dbus: print incomplete string in buffer
...
Not sure if this will ever be reached, but nice to have nonetheless.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 15:50:29 +09:00
05db06c87b
system/dbus: use syscall dispatcher
...
This allows dbus op methods and builder to be instrumented.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 14:25:19 +09:00
e603b688ca
system/dispatcher: expose test reporting to builder
...
This is currently unused but useful for builders with errors.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 12:59:33 +09:00
a9def08533
system/dbus: drop proxy output beyond threshold
...
This prevents xdg-dbus-proxy from running the priv process out of memory.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-06 02:56:21 +09:00
ecaf43358d
system/dbus: create context in subtest
...
This is causing a huge amount of spurious test failures due to the poor performance of the integration vm. This should finally put an end to the annoyance.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-05 05:15:40 +09:00
197fa65b8f
system/dbus: remove redundant proxy pairs
...
This is left over from before dbus.Final. Remove them now as they serve no purpose.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-05 02:07:56 +09:00
3920acf8c2
container/stub: remove function call in handleExit
...
This gets inlined and does not cause problems usually but turns out -coverpkg uninlines it and breaks the recovery.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-04 19:39:12 +09:00
4051577d6b
container/stub: override goexit methods
...
FailNow, Fatal, Fatalf, SkipNow, Skip and Skipf must be called from the goroutine created by the test.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-04 04:51:49 +09:00
ddfb865e2d
system/dispatcher: wrap syscall helper functions
...
This allows tests to stub all kernel behaviour, like in the container package.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-04 04:15:25 +09:00
024d2ff782
system: improve tests of the I struct
...
This cleans up for the test overhaul of this package.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-03 02:16:10 +09:00
6f719bc3c1
system: update doc commands and remove mutex
...
The mutex is not really doing anything, none of these methods make sense when called concurrently anyway. The copylocks analysis is still satisfied by the noCopy struct.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-09-02 04:54:34 +09:00
b489a3bba1
system/output: implement MessageError
...
This error is also formatted differently based on state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-31 13:51:21 +09:00
712cfc06d7
container: wrap container init start errors
...
This helps indicate the exact origin and nature of the error. This eliminates generic WrapErr from container.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 23:44:48 +09:00
f5abce9df5
system: wrap op errors
...
This passes more information allowing for better error handling. This eliminates generic WrapErr from system.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 22:49:12 +09:00
ddb003e39b
system/internal/xcb: refactor and clean up
...
This package still does not deserve to be out of internal, but at least it is less haunting now. I am still not handling the xcb error though, the struct is almost entirely undocumented and the implementation is unreadable. Not even going to try.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 20:02:18 +09:00
b12c290f12
system/wayland: improve error descriptions
...
A lot of these errors have very short and nondescript descriptions. These are only returned on incorrect API usage, but it makes sense to make them more descriptive anyway.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 16:51:40 +09:00
0122593312
system/acl: wrap libacl errors in PathError
...
This helps determine which libacl function the errno came from.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 13:19:15 +09:00
6aa431d57a
system/acl: update test log messages
...
Most of these were never updated after UpdatePerm was renamed to Update.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-30 12:55:49 +09:00
d500d6e559
system/dbus: share host net ns for abstract
...
Host abstract unix sockets are only accessible when also in the init net ns.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-21 21:55:23 +09:00
6947ff04e0
system/dbus/proc: host abstract only when not binding
...
The test failure seems to be caused by an unrelated bug in xdg-dbus-proxy.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2025-08-19 23:39:14 +09:00
5db0714072
container: optionally isolate host abstract UNIX domain sockets via landlock
2025-08-18 16:28:14 +09:00