mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-01 22:15:51 +00:00
b771a1363b
Right now TestFastShutdown tries to upload logs to localhost:1234, which will most likely respond with an error. However if one has an actual service running on port 1234, it would receive a connection attempting to POST every time the unit test runs. Start a local server and direct the upload there instead. Signed-off-by: Denton Gentry <dgentry@tailscale.com>
78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package logtail
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestFastShutdown(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
cancel()
|
|
|
|
testServ := httptest.NewServer(http.HandlerFunc(
|
|
func(w http.ResponseWriter, r *http.Request) {}))
|
|
defer testServ.Close()
|
|
|
|
l := NewLogger(Config{
|
|
BaseURL: testServ.URL,
|
|
}, t.Logf)
|
|
l.Shutdown(ctx)
|
|
}
|
|
|
|
func TestUploadMessages(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
uploads := 0
|
|
testServ := httptest.NewServer(http.HandlerFunc(
|
|
func(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
|
uploads += 1
|
|
}))
|
|
defer testServ.Close()
|
|
|
|
l := NewLogger(Config{BaseURL: testServ.URL}, t.Logf)
|
|
for i := 1; i < 10; i++ {
|
|
l.Write([]byte("log line"))
|
|
}
|
|
|
|
l.Shutdown(ctx)
|
|
cancel()
|
|
if uploads == 0 {
|
|
t.Error("no log uploads")
|
|
}
|
|
}
|
|
|
|
var sink []byte
|
|
|
|
func TestLoggerEncodeTextAllocs(t *testing.T) {
|
|
lg := &Logger{timeNow: time.Now}
|
|
inBuf := []byte("some text to encode")
|
|
n := testing.AllocsPerRun(1000, func() {
|
|
sink = lg.encodeText(inBuf, false)
|
|
})
|
|
if int(n) != 1 {
|
|
t.Logf("allocs = %d; want 1", int(n))
|
|
}
|
|
}
|
|
|
|
func TestLoggerWriteLength(t *testing.T) {
|
|
lg := &Logger{
|
|
timeNow: time.Now,
|
|
buffer: NewMemoryBuffer(1024),
|
|
}
|
|
inBuf := []byte("some text to encode")
|
|
n, err := lg.Write(inBuf)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
if n != len(inBuf) {
|
|
t.Errorf("logger.Write wrote %d bytes, expected %d", n, len(inBuf))
|
|
}
|
|
}
|