Files
weave-scope/report/censor_test.go
2019-02-25 11:35:33 +01:00

160 lines
4.0 KiB
Go

package report_test
import (
"testing"
"time"
"github.com/weaveworks/common/mtime"
"github.com/weaveworks/common/test"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test/reflect"
)
func TestCensorRawReport(t *testing.T) {
mtime.NowForce(time.Now())
defer mtime.NowReset()
r := report.Report{
Container: report.Topology{
Nodes: report.Nodes{
"a": report.MakeNodeWith("a", map[string]string{
"docker_container_command": "prog -a --b=c",
"blublu": "blu blu",
"docker_env_": "env_var",
}),
},
},
Process: report.Topology{
Nodes: report.Nodes{
"b": report.MakeNodeWith("b", map[string]string{
"cmdline": "scope --token=blibli",
"blibli": "bli bli",
}),
"c": report.MakeNodeWith("c", map[string]string{
"docker_env_": "var",
}),
},
},
}
for _, c := range []struct {
label string
have, want report.Report
}{
{
label: "no censoring",
have: report.CensorRawReport(r, report.CensorConfig{
HideCommandLineArguments: false,
HideEnvironmentVariables: false,
}),
want: report.Report{
Container: report.Topology{
Nodes: report.Nodes{
"a": report.MakeNodeWith("a", map[string]string{
"docker_container_command": "prog -a --b=c",
"blublu": "blu blu",
"docker_env_": "env_var",
}),
},
},
Process: report.Topology{
Nodes: report.Nodes{
"b": report.MakeNodeWith("b", map[string]string{
"cmdline": "scope --token=blibli",
"blibli": "bli bli",
}),
"c": report.MakeNodeWith("c", map[string]string{
"docker_env_": "var",
}),
},
},
},
},
{
label: "censor only command line args",
have: report.CensorRawReport(r, report.CensorConfig{
HideCommandLineArguments: true,
HideEnvironmentVariables: false,
}),
want: report.Report{
Container: report.Topology{
Nodes: report.Nodes{
"a": report.MakeNodeWith("a", map[string]string{
"docker_container_command": "prog",
"blublu": "blu blu",
"docker_env_": "env_var",
}),
},
},
Process: report.Topology{
Nodes: report.Nodes{
"b": report.MakeNodeWith("b", map[string]string{
"cmdline": "scope",
"blibli": "bli bli",
}),
"c": report.MakeNodeWith("c", map[string]string{
"docker_env_": "var",
}),
},
},
},
},
{
label: "censor only env variables",
have: report.CensorRawReport(r, report.CensorConfig{
HideCommandLineArguments: false,
HideEnvironmentVariables: true,
}),
want: report.Report{
Container: report.Topology{
Nodes: report.Nodes{
"a": report.MakeNodeWith("a", map[string]string{
"docker_container_command": "prog -a --b=c",
"blublu": "blu blu",
}),
},
},
Process: report.Topology{
Nodes: report.Nodes{
"b": report.MakeNodeWith("b", map[string]string{
"cmdline": "scope --token=blibli",
"blibli": "bli bli",
}),
"c": report.MakeNodeWith("c", map[string]string{}),
},
},
},
},
{
label: "censor both command line args and env vars",
have: report.CensorRawReport(r, report.CensorConfig{
HideCommandLineArguments: true,
HideEnvironmentVariables: true,
}),
want: report.Report{
Container: report.Topology{
Nodes: report.Nodes{
"a": report.MakeNodeWith("a", map[string]string{
"docker_container_command": "prog",
"blublu": "blu blu",
}),
},
},
Process: report.Topology{
Nodes: report.Nodes{
"b": report.MakeNodeWith("b", map[string]string{
"cmdline": "scope",
"blibli": "bli bli",
}),
"c": report.MakeNodeWith("c", map[string]string{}),
},
},
},
},
} {
if !reflect.DeepEqual(c.want, c.have) {
t.Errorf("%s - %s", c.label, test.Diff(c.want, c.have))
}
}
}