1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // +build !windows,!plan9
19 func runSyslog(c net.PacketConn, done chan<- string) {
23 n, _, err := c.ReadFrom(buf[0:])
24 if err != nil || n == 0 {
27 rcvd += string(buf[0:n])
32 func startServer(done chan<- string) {
33 c, e := net.ListenPacket("udp", "127.0.0.1:0")
35 log.Fatalf("net.ListenPacket failed udp :0 %v", e)
37 serverAddr = c.LocalAddr().String()
38 c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
42 func skipNetTest(t *testing.T) bool {
44 // Depends on syslog daemon running, and sometimes it's not.
45 t.Logf("skipping syslog test during -short")
51 func TestNew(t *testing.T) {
55 s, err := New(LOG_INFO, "")
57 t.Fatalf("New() failed: %s", err)
59 // Don't send any messages.
63 func TestNewLogger(t *testing.T) {
67 f, err := NewLogger(LOG_INFO, 0)
73 func TestDial(t *testing.T) {
77 l, err := Dial("", "", LOG_ERR, "syslog_test")
79 t.Fatalf("Dial() failed: %s", err)
84 func TestUDPDial(t *testing.T) {
85 done := make(chan string)
87 l, err := Dial("udp", serverAddr, LOG_INFO, "syslog_test")
89 t.Fatalf("syslog.Dial() failed: %s", err)
93 expected := "<6>syslog_test: udp test\n"
96 t.Fatalf("s.Info() = '%q', but wanted '%q'", rcvd, expected)
100 func TestWrite(t *testing.T) {
107 {LOG_ERR, "syslog_test", "", "<3>syslog_test: \n"},
108 {LOG_ERR, "syslog_test", "write test", "<3>syslog_test: write test\n"},
109 // Write should not add \n if there already is one
110 {LOG_ERR, "syslog_test", "write test 2\n", "<3>syslog_test: write test 2\n"},
113 for _, test := range tests {
114 done := make(chan string)
116 l, err := Dial("udp", serverAddr, test.pri, test.pre)
118 t.Fatalf("syslog.Dial() failed: %s", err)
120 _, err = io.WriteString(l, test.msg)
122 t.Fatalf("WriteString() failed: %s", err)
125 if rcvd != test.exp {
126 t.Fatalf("s.Info() = '%q', but wanted '%q'", rcvd, test.exp)