@@ -6,12 +6,14 @@ package ssh
6
6
7
7
import (
8
8
"bytes"
9
+ "context"
9
10
"crypto/rand"
10
11
"errors"
11
12
"fmt"
12
13
"net"
13
14
"strings"
14
15
"testing"
16
+ "time"
15
17
)
16
18
17
19
func TestClientVersion (t * testing.T ) {
@@ -365,3 +367,27 @@ func TestUnsupportedAlgorithm(t *testing.T) {
365
367
})
366
368
}
367
369
}
370
+
371
+ func TestDialContext (t * testing.T ) {
372
+ ctx , cancel := context .WithCancel (context .Background ())
373
+ cancel ()
374
+ _ , err := DialContext (ctx , "tcp" , ":22" , & ClientConfig {})
375
+ wantErr := context .Canceled
376
+ if ! errors .Is (err , wantErr ) {
377
+ t .Errorf ("DialContext: err == %v, expected %v" , err , wantErr )
378
+ }
379
+
380
+ ctx , cancel = context .WithDeadline (context .Background (), time .Now ())
381
+ defer cancel ()
382
+ _ , err = DialContext (ctx , "tcp" , ":22" , & ClientConfig {})
383
+ wantErr = context .DeadlineExceeded
384
+ if ! errors .Is (err , wantErr ) {
385
+ t .Errorf ("DialContext: err == %v, expected %v" , err , wantErr )
386
+ }
387
+
388
+ ctx = context .Background ()
389
+ _ , err = DialContext (ctx , "tcp" , ":22" , & ClientConfig {})
390
+ if _ , ok := err .(* net.OpError ); ! ok {
391
+ t .Errorf ("DialContext: err == %#v, expected *net.OpError" , err )
392
+ }
393
+ }
0 commit comments