返回 DeepSeek-Reasonix
seatbelt_windows_test.go
根目录 / internal / sandbox / seatbelt_windows_test.go
1 //go:build windows
2
3 package sandbox
4
5 import (
6 "reflect"
7 "testing"
8 )
9
10 func TestWindowsSandboxIsUnavailable(t *testing.T) {
11 if Available() {
12 t.Fatal("Windows must report the retired OS-level Bash sandbox as unavailable")
13 }
14 }
15
16 func TestWindowsCommandRemainsUnwrapped(t *testing.T) {
17 sh := Shell{Kind: ShellPowerShell, Path: `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`}
18 argv, wrapped := Command(Spec{Mode: "enforce"}, sh, "Write-Output ok")
19 if wrapped {
20 t.Fatal("Windows command must not report an OS sandbox wrapper")
21 }
22 if len(argv) == 0 || argv[0] != sh.Path {
23 t.Fatalf("command argv = %v, want shell path %q", argv, sh.Path)
24 }
25 }
26
27 func TestWindowsCommandArgsRemainsUnwrapped(t *testing.T) {
28 want := []string{"git", "status"}
29 got, wrapped := CommandArgs(Spec{Mode: "enforce"}, append([]string(nil), want...))
30 if wrapped {
31 t.Fatal("Windows direct argv must not report an OS sandbox wrapper")
32 }
33 if !reflect.DeepEqual(got, want) {
34 t.Fatalf("command argv = %v, want %v", got, want)
35 }
36 }
37
37 lines GO