1
0
mirror of https://github.com/prometheus-community/postgres_exporter.git synced 2025-08-11 02:43:02 +03:00

Add a test case to detect regression on issue fixed by PR #39.

Related issue is #38. Time to start expanding functional test coverage since
the integration tests missed this.
This commit is contained in:
Will Rouesnel
2016-11-29 02:12:51 +11:00
parent 8f3088611b
commit 3ead0f9aff
3 changed files with 91 additions and 1 deletions

87
postgres_exporter_test.go Normal file
View File

@@ -0,0 +1,87 @@
// +build !integration
package main
import (
"testing"
. "gopkg.in/check.v1"
"github.com/blang/semver"
)
// Hook up gocheck into the "go test" runner.
func Test(t *testing.T) { TestingT(t) }
type FunctionalSuite struct{
e *Exporter
}
var _ = Suite(&FunctionalSuite{})
func (s *FunctionalSuite) SetUpSuite(c *C) {
}
func (s *FunctionalSuite) TestSemanticVersionColumnDiscard(c *C) {
testMetricMap := map[string]map[string]ColumnMapping{
"test_namespace" : map[string]ColumnMapping{
"metric_which_stays" : {COUNTER, "This metric should not be eliminated", nil, nil},
"metric_which_discards" : {COUNTER, "This metric should be forced to DISCARD", nil, nil},
},
}
{
// No metrics should be eliminated
resultMap := makeDescMap(semver.MustParse("0.0.1"), testMetricMap)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_stays"].discard,
Equals,
false,
)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_discards"].discard,
Equals,
false,
)
}
{
// Update the map so the discard metric should be eliminated
discardable_metric := testMetricMap["test_namespace"]["metric_which_discards"]
discardable_metric.supportedVersions = semver.MustParseRange(">0.0.1")
testMetricMap["test_namespace"]["metric_which_discards"] = discardable_metric
// Discard metric should be discarded
resultMap := makeDescMap(semver.MustParse("0.0.1"), testMetricMap)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_stays"].discard,
Equals,
false,
)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_discards"].discard,
Equals,
true,
)
}
{
// Update the map so the discard metric should be kept but has a version
discardable_metric := testMetricMap["test_namespace"]["metric_which_discards"]
discardable_metric.supportedVersions = semver.MustParseRange(">0.0.1")
testMetricMap["test_namespace"]["metric_which_discards"] = discardable_metric
// Discard metric should be discarded
resultMap := makeDescMap(semver.MustParse("0.0.2"), testMetricMap)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_stays"].discard,
Equals,
false,
)
c.Check(
resultMap["test_namespace"].columnMappings["metric_which_discards"].discard,
Equals,
false,
)
}
}