| 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 |