forked from baron/baron-sso
35 lines
677 B
Go
35 lines
677 B
Go
package testsupport
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
|
|
"github.com/testcontainers/testcontainers-go"
|
|
)
|
|
|
|
// PortBindingAvailable reports whether this environment can bind a local TCP listener.
|
|
func PortBindingAvailable() bool {
|
|
ln, err := net.Listen("tcp4", "127.0.0.1:0")
|
|
if err != nil {
|
|
return false
|
|
}
|
|
_ = ln.Close()
|
|
return true
|
|
}
|
|
|
|
// DockerAvailable reports whether Testcontainers can talk to a Docker provider.
|
|
func DockerAvailable() bool {
|
|
defer func() {
|
|
_ = recover()
|
|
}()
|
|
|
|
provider, err := testcontainers.ProviderDocker.GetProvider()
|
|
if err != nil {
|
|
return false
|
|
}
|
|
if err := provider.Health(context.Background()); err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|