50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package collector
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func BenchmarkIISCollector(b *testing.B) {
|
|
benchmarkCollector(b, "iis", newIISCollector)
|
|
}
|
|
|
|
func TestIISDeduplication(t *testing.T) {
|
|
start := []perflibAPP_POOL_WAS{
|
|
{
|
|
Name: "foo",
|
|
Frequency_Object: 1,
|
|
},
|
|
{
|
|
Name: "foo1#999",
|
|
Frequency_Object: 2,
|
|
},
|
|
{
|
|
Name: "foo#2",
|
|
Frequency_Object: 3,
|
|
},
|
|
{
|
|
Name: "bar$2",
|
|
Frequency_Object: 4,
|
|
},
|
|
{
|
|
Name: "bar_2",
|
|
Frequency_Object: 5,
|
|
},
|
|
}
|
|
var expected = make(map[string]perflibAPP_POOL_WAS)
|
|
// Should be deduplicated from "foo#2"
|
|
expected["foo"] = perflibAPP_POOL_WAS{Name: "foo#2", Frequency_Object: 3}
|
|
// Map key should have suffix stripped, but struct name field should be unchanged
|
|
expected["foo1"] = perflibAPP_POOL_WAS{Name: "foo1#999", Frequency_Object: 2}
|
|
// Map key and Name should be identical, as there is no suffix starting with "#"
|
|
expected["bar$2"] = perflibAPP_POOL_WAS{Name: "bar$2", Frequency_Object: 4}
|
|
// Map key and Name should be identical, as there is no suffix starting with "#"
|
|
expected["bar_2"] = perflibAPP_POOL_WAS{Name: "bar_2", Frequency_Object: 5}
|
|
|
|
deduplicated := dedupIISNames(start)
|
|
if !reflect.DeepEqual(expected, deduplicated) {
|
|
t.Errorf("Flattened values do not match!\nExpected result: %+v\nActual result: %+v", expected, deduplicated)
|
|
}
|
|
}
|