178 lines
2.9 KiB
Go
178 lines
2.9 KiB
Go
package internal_models
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestFilter_Empty(t *testing.T) {
|
|
f := Filter{}
|
|
|
|
measurements := []string{
|
|
"foo",
|
|
"bar",
|
|
"barfoo",
|
|
"foo_bar",
|
|
"foo.bar",
|
|
"foo-bar",
|
|
"supercalifradjulisticexpialidocious",
|
|
}
|
|
|
|
for _, measurement := range measurements {
|
|
if !f.ShouldPass(measurement) {
|
|
t.Errorf("Expected measurement %s to pass", measurement)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilter_Pass(t *testing.T) {
|
|
f := Filter{
|
|
Pass: []string{"foo*", "cpu_usage_idle"},
|
|
}
|
|
|
|
passes := []string{
|
|
"foo",
|
|
"foo_bar",
|
|
"foo.bar",
|
|
"foo-bar",
|
|
"cpu_usage_idle",
|
|
}
|
|
|
|
drops := []string{
|
|
"bar",
|
|
"barfoo",
|
|
"bar_foo",
|
|
"cpu_usage_busy",
|
|
}
|
|
|
|
for _, measurement := range passes {
|
|
if !f.ShouldPass(measurement) {
|
|
t.Errorf("Expected measurement %s to pass", measurement)
|
|
}
|
|
}
|
|
|
|
for _, measurement := range drops {
|
|
if f.ShouldPass(measurement) {
|
|
t.Errorf("Expected measurement %s to drop", measurement)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilter_Drop(t *testing.T) {
|
|
f := Filter{
|
|
Drop: []string{"foo*", "cpu_usage_idle"},
|
|
}
|
|
|
|
drops := []string{
|
|
"foo",
|
|
"foo_bar",
|
|
"foo.bar",
|
|
"foo-bar",
|
|
"cpu_usage_idle",
|
|
}
|
|
|
|
passes := []string{
|
|
"bar",
|
|
"barfoo",
|
|
"bar_foo",
|
|
"cpu_usage_busy",
|
|
}
|
|
|
|
for _, measurement := range passes {
|
|
if !f.ShouldPass(measurement) {
|
|
t.Errorf("Expected measurement %s to pass", measurement)
|
|
}
|
|
}
|
|
|
|
for _, measurement := range drops {
|
|
if f.ShouldPass(measurement) {
|
|
t.Errorf("Expected measurement %s to drop", measurement)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilter_TagPass(t *testing.T) {
|
|
filters := []TagFilter{
|
|
TagFilter{
|
|
Name: "cpu",
|
|
Filter: []string{"cpu-*"},
|
|
},
|
|
TagFilter{
|
|
Name: "mem",
|
|
Filter: []string{"mem_free"},
|
|
}}
|
|
f := Filter{
|
|
TagPass: filters,
|
|
}
|
|
|
|
passes := []map[string]string{
|
|
{"cpu": "cpu-total"},
|
|
{"cpu": "cpu-0"},
|
|
{"cpu": "cpu-1"},
|
|
{"cpu": "cpu-2"},
|
|
{"mem": "mem_free"},
|
|
}
|
|
|
|
drops := []map[string]string{
|
|
{"cpu": "cputotal"},
|
|
{"cpu": "cpu0"},
|
|
{"cpu": "cpu1"},
|
|
{"cpu": "cpu2"},
|
|
{"mem": "mem_used"},
|
|
}
|
|
|
|
for _, tags := range passes {
|
|
if !f.ShouldTagsPass(tags) {
|
|
t.Errorf("Expected tags %v to pass", tags)
|
|
}
|
|
}
|
|
|
|
for _, tags := range drops {
|
|
if f.ShouldTagsPass(tags) {
|
|
t.Errorf("Expected tags %v to drop", tags)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilter_TagDrop(t *testing.T) {
|
|
filters := []TagFilter{
|
|
TagFilter{
|
|
Name: "cpu",
|
|
Filter: []string{"cpu-*"},
|
|
},
|
|
TagFilter{
|
|
Name: "mem",
|
|
Filter: []string{"mem_free"},
|
|
}}
|
|
f := Filter{
|
|
TagDrop: filters,
|
|
}
|
|
|
|
drops := []map[string]string{
|
|
{"cpu": "cpu-total"},
|
|
{"cpu": "cpu-0"},
|
|
{"cpu": "cpu-1"},
|
|
{"cpu": "cpu-2"},
|
|
{"mem": "mem_free"},
|
|
}
|
|
|
|
passes := []map[string]string{
|
|
{"cpu": "cputotal"},
|
|
{"cpu": "cpu0"},
|
|
{"cpu": "cpu1"},
|
|
{"cpu": "cpu2"},
|
|
{"mem": "mem_used"},
|
|
}
|
|
|
|
for _, tags := range passes {
|
|
if !f.ShouldTagsPass(tags) {
|
|
t.Errorf("Expected tags %v to pass", tags)
|
|
}
|
|
}
|
|
|
|
for _, tags := range drops {
|
|
if f.ShouldTagsPass(tags) {
|
|
t.Errorf("Expected tags %v to drop", tags)
|
|
}
|
|
}
|
|
}
|