@@ -247,7 +247,15 @@ func testAttachVsock(ctx context.Context, t *testing.T, m *Machine) {
247
247
}
248
248
err := m .addVsock (ctx , dev )
249
249
if err != nil {
250
- t .Errorf ("attaching vsock failed: %s" , err )
250
+ if badRequest , ok := err .(* operations.PutGuestVsockByIDBadRequest ); ok &&
251
+ strings .HasPrefix (badRequest .Payload .FaultMessage , "Invalid request method and/or path" ) {
252
+ t .Errorf (`attaching vsock failed: %s
253
+ Does your Firecracker binary have vsock support?
254
+ Build one with vsock support by running ` + "`cargo build --release --features vsock` from within the Firecracker repository." ,
255
+ badRequest .Payload .FaultMessage )
256
+ } else {
257
+ t .Errorf ("attaching vsock failed: %s" , err )
258
+ }
251
259
}
252
260
}
253
261
@@ -256,13 +264,12 @@ func testStartInstance(ctx context.Context, t *testing.T, m *Machine) {
256
264
if err != nil {
257
265
if syncErr , ok := err .(* operations.CreateSyncActionDefault ); ok &&
258
266
strings .HasPrefix (syncErr .Payload .FaultMessage , "Cannot create vsock device" ) {
259
- t .Errorf (`startInstance: %s
267
+ t .Errorf (`startInstance: %s
260
268
Do you have permission to interact with /dev/vhost-vsock?
261
269
Grant yourself permission with ` + "`sudo setfacl -m u:${USER}:rw /dev/vhost-vsock`" , syncErr .Payload .FaultMessage )
262
- }
263
- } else {
264
- t .Errorf ("startInstance failed: %s" , err )
265
270
}
271
+ } else {
272
+ t .Errorf ("startInstance failed: %s" , err )
266
273
}
267
274
}
268
275
0 commit comments