2019-12-08 22:52:31 +00:00
|
|
|
|
package promql
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestParseMetricSelectorSuccess(t *testing.T) {
|
|
|
|
|
f := func(s string) {
|
|
|
|
|
t.Helper()
|
|
|
|
|
tfs, err := ParseMetricSelector(s)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("unexpected error when parsing %q: %s", s, err)
|
|
|
|
|
}
|
|
|
|
|
if tfs == nil {
|
|
|
|
|
t.Fatalf("expecting non-nil tfs when parsing %q", s)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
f("foo")
|
|
|
|
|
f(":foo")
|
|
|
|
|
f(" :fo:bar.baz")
|
|
|
|
|
f(`a{}`)
|
|
|
|
|
f(`{foo="bar"}`)
|
|
|
|
|
f(`{:f:oo=~"bar.+"}`)
|
|
|
|
|
f(`foo {bar != "baz"}`)
|
|
|
|
|
f(` foo { bar !~ "^ddd(x+)$", a="ss", __name__="sffd"} `)
|
|
|
|
|
f(`(foo)`)
|
2021-01-13 08:57:34 +00:00
|
|
|
|
f(`\п\р\и\в\е\т{\ы="111"}`)
|
2019-12-08 22:52:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestParseMetricSelectorError(t *testing.T) {
|
|
|
|
|
f := func(s string) {
|
|
|
|
|
t.Helper()
|
|
|
|
|
tfs, err := ParseMetricSelector(s)
|
|
|
|
|
if err == nil {
|
|
|
|
|
t.Fatalf("expecting non-nil error when parsing %q", s)
|
|
|
|
|
}
|
|
|
|
|
if tfs != nil {
|
|
|
|
|
t.Fatalf("expecting nil tfs when parsing %q", s)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
f("")
|
|
|
|
|
f(`{}`)
|
|
|
|
|
f(`foo bar`)
|
|
|
|
|
f(`foo+bar`)
|
|
|
|
|
f(`sum(bar)`)
|
|
|
|
|
f(`x{y}`)
|
|
|
|
|
f(`x{y+z}`)
|
|
|
|
|
f(`foo[5m]`)
|
|
|
|
|
f(`foo offset 5m`)
|
|
|
|
|
}
|