mirror of
https://github.com/Twigpine/zero.git
synced 2026-11-12 08:41:32 -10:00
* fix(sandbox): retry approved network shell commands * test(sandbox): fix portable smoke expectations * fix(sandbox): restore Windows offline egress block
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
//go:build linux
|
|
|
|
package sandbox
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestLinuxSandboxInnerStageAppliesNetworkDenySeccomp(t *testing.T) {
|
|
originalNetworkDeny := applyLinuxNetworkDenyFilter
|
|
originalUnixBlock := applyUnixSocketBlockFilter
|
|
t.Cleanup(func() {
|
|
applyLinuxNetworkDenyFilter = originalNetworkDeny
|
|
applyUnixSocketBlockFilter = originalUnixBlock
|
|
})
|
|
|
|
networkDenyCalls := 0
|
|
unixBlockCalls := 0
|
|
applyLinuxNetworkDenyFilter = func() error {
|
|
networkDenyCalls++
|
|
return nil
|
|
}
|
|
applyUnixSocketBlockFilter = func() error {
|
|
unixBlockCalls++
|
|
return nil
|
|
}
|
|
|
|
var stderr bytes.Buffer
|
|
code := runLinuxSandboxInnerStage(LinuxSandboxHelperConfig{
|
|
PermissionProfile: PermissionProfile{Network: NetworkPolicy{Mode: NetworkDeny}},
|
|
BlockUnixSockets: true,
|
|
Command: []string{"definitely-not-a-real-zero-test-command"},
|
|
}, &stderr)
|
|
|
|
if code != 127 {
|
|
t.Fatalf("exit code = %d, want lookup failure 127 after filters; stderr=%s", code, stderr.String())
|
|
}
|
|
if networkDenyCalls != 1 {
|
|
t.Fatalf("network deny filter calls = %d, want 1", networkDenyCalls)
|
|
}
|
|
if unixBlockCalls != 1 {
|
|
t.Fatalf("unix socket filter calls = %d, want 1", unixBlockCalls)
|
|
}
|
|
}
|
|
|
|
func TestLinuxSandboxInnerStageSkipsNetworkDenySeccompWhenAllowed(t *testing.T) {
|
|
originalNetworkDeny := applyLinuxNetworkDenyFilter
|
|
t.Cleanup(func() {
|
|
applyLinuxNetworkDenyFilter = originalNetworkDeny
|
|
})
|
|
|
|
applyLinuxNetworkDenyFilter = func() error {
|
|
return errors.New("network deny filter should not run")
|
|
}
|
|
|
|
var stderr bytes.Buffer
|
|
code := runLinuxSandboxInnerStage(LinuxSandboxHelperConfig{
|
|
PermissionProfile: PermissionProfile{Network: NetworkPolicy{Mode: NetworkAllow}},
|
|
Command: []string{"definitely-not-a-real-zero-test-command"},
|
|
}, &stderr)
|
|
|
|
if code != 127 {
|
|
t.Fatalf("exit code = %d, want lookup failure 127 without network filter; stderr=%s", code, stderr.String())
|
|
}
|
|
}
|