tailscale/logtail
Denton Gentry 013da6660e logtail: add tests
+ add a test for parseAndRemoveLogLevel()
+ add a test for drainPendingMessages()
+ test JSON log encoding including several special cases

Other tests frequently send logs but a) don't check the result and
b) do so by happenstance, such that the code in encode() was not
consistently being exercised and leading to spurious changes in
code coverage. These tests attempt to more systematically test
the logging function.

This is the second attempt to add these tests, the first attempt
(in https://github.com/tailscale/tailscale/pull/1114) had two issues:
1. httptest.NewServer creates multiple goroutine handlers, and
   logtail uses goroutines to upload, but the first version had no
   locking in the server to guard this.
   Moved data handling into channels to get synchronization.
2. The channel to notify the test of the arrival of data had a depth
   of 1, in cases where the Logger sent multiple uploads it would
   block the server.

This resulted in the first iteration of these tests being flaky,
and we reverted it.

This new version of the tests has passed with
    go test -race -count=10000
and seems solid.

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2021-01-15 19:11:40 -08:00
..
backoff backoff: update to Go style, document a bit, make 30s explicit 2020-08-09 09:36:26 -07:00
example logtail, logpolicy: remove an unidiomatic use of an interface 2020-12-21 09:03:39 -08:00
filch all: adjust Unix permissions for those without umasks 2021-01-11 19:24:41 -08:00
.gitignore Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
README.md Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
api.md Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
buffer.go logtail: rename the unused CheckLogs to DrainLogs 2020-03-20 13:26:33 +11:00
id.go logtail: add PrivateID.IsZero method 2020-04-27 07:33:23 -07:00
id_test.go logtail: add ParsePublicID that doesn't allocate 2020-04-13 08:54:35 -07:00
logtail.go cmd/tailscaled, logpolicy, logtail: support log levels 2020-12-21 12:59:33 -08:00
logtail_test.go logtail: add tests 2021-01-15 19:11:40 -08:00

README.md

Tailscale Logs Service

This github repository contains libraries, documentation, and examples for working with the public API of the tailscale logs service.

For a very quick introduction to the core features, read the API docs and peruse the logs reprocessing example.

For more information, write to info@tailscale.io.