File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -19,18 +19,55 @@ import (
19
19
"errors"
20
20
"fmt"
21
21
"io"
22
+ "io/ioutil"
22
23
"net"
24
+ "os"
25
+ "path"
23
26
"reflect"
24
27
"strings"
25
28
"sync"
26
29
"testing"
30
+ "time"
27
31
)
28
32
29
33
func TestSocketMonitorConnectDisconnect (t * testing.T ) {
30
34
_ , _ , done := testSocket (t )
31
35
done ()
32
36
}
33
37
38
+ func TestSocketMonitor_Listen (t * testing.T ) {
39
+ dir , err := ioutil .TempDir (os .TempDir (), "qemu-go.tests." )
40
+ defer os .Remove (dir )
41
+ if err != nil {
42
+ t .Fatalf ("failed to create temporary directory: %v" , err )
43
+ }
44
+ sock := path .Join (dir , "sock" )
45
+
46
+ go func () {
47
+ timer := time .NewTimer (50 * time .Millisecond )
48
+
49
+ select {
50
+ case <- timer .C :
51
+ if _ , err := os .Stat (sock ); err == nil {
52
+ _ , err := net .Dial ("unix" , sock )
53
+ if err != nil {
54
+ t .Fatalf ("failed to connect to socket %s: %v" , sock , err )
55
+ }
56
+ break
57
+ }
58
+ case <- time .After (time .Second * 3 ):
59
+ t .Fatalf ("timed out connecting to socket %s" , sock )
60
+ break
61
+ }
62
+ timer .Stop ()
63
+ }()
64
+
65
+ _ , err = Listen ("unix" , sock )
66
+ if err != nil {
67
+ t .Fatalf ("failed to listen with socket %s: %v" , sock , err )
68
+ }
69
+ }
70
+
34
71
func TestSocketMonitorEvents (t * testing.T ) {
35
72
mon , w , done := testSocket (t )
36
73
defer done ()
You can’t perform that action at this time.
0 commit comments