@@ -112,6 +112,8 @@ func waitWS(ctx context.Context, url string) error {
112
112
// TODO: Let docker pick the port and use docker port to find it.
113
113
// Does mean we can't use -i but that's fine.
114
114
func wstestServer (ctx context.Context ) (url string , closeFn func () error , err error ) {
115
+ defer errd .Wrap (& err , "failed to start autobahn wstest server" )
116
+
115
117
serverAddr , err := unusedListenAddr ()
116
118
if err != nil {
117
119
return "" , nil , err
@@ -141,6 +143,15 @@ func wstestServer(ctx context.Context) (url string, closeFn func() error, err er
141
143
}
142
144
}()
143
145
146
+ dockerPull := exec .CommandContext (ctx , "docker" , "pull" , "crossbario/autobahn-testsuite" )
147
+ // TODO: log to *testing.T
148
+ dockerPull .Stdout = os .Stdout
149
+ dockerPull .Stderr = os .Stderr
150
+ err = dockerPull .Run ()
151
+ if err != nil {
152
+ return "" , nil , fmt .Errorf ("failed to pull docker image: %w" , err )
153
+ }
154
+
144
155
wd , err := os .Getwd ()
145
156
if err != nil {
146
157
return "" , nil , err
@@ -159,7 +170,6 @@ func wstestServer(ctx context.Context) (url string, closeFn func() error, err er
159
170
"--webport=0" ,
160
171
)
161
172
fmt .Println (strings .Join (args , " " ))
162
- // TODO: pull image in advance
163
173
wstest := exec .CommandContext (ctx , "docker" , args ... )
164
174
// TODO: log to *testing.T
165
175
wstest .Stdout = os .Stdout
0 commit comments