-
Notifications
You must be signed in to change notification settings - Fork 763
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
- Loading branch information
Showing
3 changed files
with
91 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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, | ||
) | ||
} | ||
} |