@@ -51,6 +51,7 @@ const (
5151type SandboxManagerOptions struct {
5252 GOOS string
5353 LookupExecutable func (string ) (string , error )
54+ DetectWSL func () WSLInfo
5455 Backend Backend
5556}
5657
@@ -96,7 +97,7 @@ func NewSandboxManager(options SandboxManagerOptions) SandboxManager {
9697 goos = runtime .GOOS
9798 }
9899 if backend .Name == "" {
99- backend = selectPlatformBackend (goos , options .LookupExecutable )
100+ backend = selectPlatformBackend (goos , options .LookupExecutable , options . DetectWSL )
100101 }
101102 if backend .Platform == "" {
102103 backend .Platform = goos
@@ -168,10 +169,13 @@ func lookupExecutable(name string) (string, error) {
168169 return "" , errors .New ("executable file not found" )
169170}
170171
171- func selectPlatformBackend (goos string , lookup func (string ) (string , error )) Backend {
172+ func selectPlatformBackend (goos string , lookup func (string ) (string , error ), detect func () WSLInfo ) Backend {
172173 if lookup == nil {
173174 lookup = lookupExecutable
174175 }
176+ if detect == nil {
177+ detect = detectWSL
178+ }
175179 switch goos {
176180 case "linux" :
177181 if helper , err := lookup (LinuxSandboxHelperName ); err == nil && helper != "" {
@@ -180,7 +184,7 @@ func selectPlatformBackend(goos string, lookup func(string) (string, error)) Bac
180184 }
181185 return nativeBackend (goos , BackendLinuxBwrap , helper , "Linux sandbox helper available" )
182186 }
183- if info := detectWSL (); info .IsWSL {
187+ if info := detect (); info .IsWSL {
184188 return wslBackend (goos , info )
185189 }
186190 return unavailableBackend (goos , "Linux sandbox helper is not available" )
0 commit comments