github.com/ncodes/nomad@v0.5.7-0.20170403112158-97adf4a74fb3/client/driver/logging/syslog_server_unix_test.go (about) 1 package logging 2 3 import ( 4 "io/ioutil" 5 "net" 6 "os" 7 "path" 8 "testing" 9 "time" 10 ) 11 12 func TestSyslogServer_Start_Shutdown(t *testing.T) { 13 dir, err := ioutil.TempDir("", "sock") 14 if err != nil { 15 t.Fatalf("Failed to create temporary direcotry: %v", err) 16 } 17 18 sock := path.Join(dir, "socket") 19 defer os.Remove(sock) 20 21 l, err := net.Listen("unix", sock) 22 if err != nil { 23 t.Fatalf("Failed to listen unix socket: %v", err) 24 } 25 26 s := NewSyslogServer(l, make(chan *SyslogMessage, 2048), nil) 27 28 go s.Start() 29 if s.done { 30 t.Fatalf("expected running SyslogServer, but not running") 31 } 32 33 received := false 34 go func() { 35 for _ = range s.messages { 36 received = true 37 } 38 }() 39 40 conn, err := net.Dial("unix", sock) 41 if err != nil { 42 t.Fatalf("expected access to SyslogServer, but %v", err) 43 } 44 45 _, err = conn.Write([]byte("syslog server test\n")) 46 if err != nil { 47 t.Fatalf("expected send data to SyslogServer but: %v", err) 48 } 49 50 // Need to wait until SyslogServer received the data certainly 51 time.Sleep(1000 * time.Millisecond) 52 53 if !received { 54 t.Fatalf("expected SyslogServer received data, but not received") 55 } 56 57 defer conn.Close() 58 59 s.Shutdown() 60 if !s.done { 61 t.Fatalf("expected SyslogServer done, but running") 62 } 63 }