diff --git a/autobahn_test.go b/autobahn_test.go index 4df4b66bde5ec374c96f815685026864373db332..23723b51b058e862c9cbcfd7acc0c9eacacdb8ba 100644 --- a/autobahn_test.go +++ b/autobahn_test.go @@ -112,6 +112,8 @@ func waitWS(ctx context.Context, url string) error { // TODO: Let docker pick the port and use docker port to find it. // Does mean we can't use -i but that's fine. func wstestServer(ctx context.Context) (url string, closeFn func() error, err error) { + defer errd.Wrap(&err, "failed to start autobahn wstest server") + serverAddr, err := unusedListenAddr() if err != nil { return "", nil, err @@ -141,6 +143,15 @@ func wstestServer(ctx context.Context) (url string, closeFn func() error, err er } }() + dockerPull := exec.CommandContext(ctx, "docker", "pull", "crossbario/autobahn-testsuite") + // TODO: log to *testing.T + dockerPull.Stdout = os.Stdout + dockerPull.Stderr = os.Stderr + err = dockerPull.Run() + if err != nil { + return "", nil, fmt.Errorf("failed to pull docker image: %w", err) + } + wd, err := os.Getwd() if err != nil { return "", nil, err @@ -159,7 +170,6 @@ func wstestServer(ctx context.Context) (url string, closeFn func() error, err er "--webport=0", ) fmt.Println(strings.Join(args, " ")) - // TODO: pull image in advance wstest := exec.CommandContext(ctx, "docker", args...) // TODO: log to *testing.T wstest.Stdout = os.Stdout