aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/seccomp/syscall_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-11-05 05:48:59 +0900
committerOphestra <cat@gensokyo.uk>2025-11-05 05:48:59 +0900
commit7f27a6dc5173bc6c4b71918b98a2d6b72bd37d30 (patch)
tree4c97c7c4d8d892976719841f2b73ccc1f0ac81c0 /container/seccomp/syscall_test.go
parentb65aba94467e9d8f3400c3e3de5f403e82bc99e7 (diff)
container/seccomp: use native types
This prepares NativeRule for relocation to std for #15. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/seccomp/syscall_test.go')
-rw-r--r--container/seccomp/syscall_test.go32
1 files changed, 28 insertions, 4 deletions
diff --git a/container/seccomp/syscall_test.go b/container/seccomp/syscall_test.go
index 151f6321..98076cf3 100644
--- a/container/seccomp/syscall_test.go
+++ b/container/seccomp/syscall_test.go
@@ -23,17 +23,41 @@ func TestSyscallResolveName(t *testing.T) {
}
}
-func TestRuleSize(t *testing.T) {
+func TestRuleType(t *testing.T) {
+ assertKind[ScmpUint, scmpUint](t)
+ assertKind[ScmpInt, scmpInt](t)
+
assertSize[NativeRule, syscallRule](t)
- assertSize[ScmpDatum, scmpDatum](t)
+ assertKind[ScmpDatum, scmpDatum](t)
+ assertKind[ScmpCompare, scmpCompare](t)
assertSize[ScmpArgCmp, scmpArgCmp](t)
}
// assertSize asserts that native and equivalent are of the same size.
func assertSize[native, equivalent any](t *testing.T) {
- got := unsafe.Sizeof(*new(native))
- want := unsafe.Sizeof(*new(equivalent))
+ t.Helper()
+
+ got, want := unsafe.Sizeof(*new(native)), unsafe.Sizeof(*new(equivalent))
if got != want {
t.Fatalf("%s: %d, want %d", reflect.TypeFor[native]().Name(), got, want)
}
}
+
+// assertKind asserts that native and equivalent are of the same kind.
+func assertKind[native, equivalent any](t *testing.T) {
+ t.Helper()
+
+ assertSize[native, equivalent](t)
+ nativeType, equivalentType := reflect.TypeFor[native](), reflect.TypeFor[equivalent]()
+ got, want := nativeType.Kind(), equivalentType.Kind()
+
+ if got == reflect.Invalid || want == reflect.Invalid {
+ t.Fatalf("%s: invalid call to assertKind", nativeType.Name())
+ }
+ if got == reflect.Struct {
+ t.Fatalf("%s: struct is unsupported by assertKind", nativeType.Name())
+ }
+ if got != want {
+ t.Fatalf("%s: %s, want %s", nativeType.Name(), nativeType.Kind(), equivalentType.Kind())
+ }
+}