mirror of https://github.com/k3s-io/k3s
Merge pull request #190 from lavalamp/fix_name
File name should have changed during query->selector rename. Also, make selector parsing deterministic.pull/6/head
commit
4deaca1ce2
|
@ -18,6 +18,7 @@ package labels
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -101,6 +102,7 @@ func SelectorFromSet(ls Set) Selector {
|
|||
// Takes a string repsenting a selector and returns an object suitable for matching, or an error.
|
||||
func ParseSelector(selector string) (Selector, error) {
|
||||
parts := strings.Split(selector, ",")
|
||||
sort.StringSlice(parts).Sort()
|
||||
var items []Selector
|
||||
for _, part := range parts {
|
||||
if part == "" {
|
|
@ -47,6 +47,17 @@ func TestSelectorParse(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestDeterministicParse(t *testing.T) {
|
||||
s1, err := ParseSelector("x=a,a=x")
|
||||
s2, err2 := ParseSelector("a=x,x=a")
|
||||
if err != nil || err2 != nil {
|
||||
t.Errorf("Unexpected parse error")
|
||||
}
|
||||
if s1.String() != s2.String() {
|
||||
t.Errorf("Non-deterministic parse")
|
||||
}
|
||||
}
|
||||
|
||||
func expectMatch(t *testing.T, selector string, ls Set) {
|
||||
lq, err := ParseSelector(selector)
|
||||
if err != nil {
|
Loading…
Reference in New Issue