59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
package loggerutils
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/docker/docker/daemon/logger"
|
|
)
|
|
|
|
func TestParseLogTagDefaultTag(t *testing.T) {
|
|
ctx := buildContext(map[string]string{})
|
|
tag, e := ParseLogTag(ctx, "{{.ID}}")
|
|
assertTag(t, e, tag, ctx.ID())
|
|
}
|
|
|
|
func TestParseLogTag(t *testing.T) {
|
|
ctx := buildContext(map[string]string{"tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
|
|
tag, e := ParseLogTag(ctx, "{{.ID}}")
|
|
assertTag(t, e, tag, "test-image/test-container/container-ab")
|
|
}
|
|
|
|
func TestParseLogTagSyslogTag(t *testing.T) {
|
|
ctx := buildContext(map[string]string{"syslog-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
|
|
tag, e := ParseLogTag(ctx, "{{.ID}}")
|
|
assertTag(t, e, tag, "test-image/test-container/container-ab")
|
|
}
|
|
|
|
func TestParseLogTagGelfTag(t *testing.T) {
|
|
ctx := buildContext(map[string]string{"gelf-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
|
|
tag, e := ParseLogTag(ctx, "{{.ID}}")
|
|
assertTag(t, e, tag, "test-image/test-container/container-ab")
|
|
}
|
|
|
|
func TestParseLogTagFluentdTag(t *testing.T) {
|
|
ctx := buildContext(map[string]string{"fluentd-tag": "{{.ImageName}}/{{.Name}}/{{.ID}}"})
|
|
tag, e := ParseLogTag(ctx, "{{.ID}}")
|
|
assertTag(t, e, tag, "test-image/test-container/container-ab")
|
|
}
|
|
|
|
// Helpers
|
|
|
|
func buildContext(cfg map[string]string) logger.Context {
|
|
return logger.Context{
|
|
ContainerID: "container-abcdefghijklmnopqrstuvwxyz01234567890",
|
|
ContainerName: "/test-container",
|
|
ContainerImageID: "image-abcdefghijklmnopqrstuvwxyz01234567890",
|
|
ContainerImageName: "test-image",
|
|
Config: cfg,
|
|
}
|
|
}
|
|
|
|
func assertTag(t *testing.T, e error, tag string, expected string) {
|
|
if e != nil {
|
|
t.Fatalf("Error generating tag: %q", e)
|
|
}
|
|
if tag != expected {
|
|
t.Fatalf("Wrong tag: %q, should be %q", tag, expected)
|
|
}
|
|
}
|