do not lower keys

Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Victor Vieux 2016-02-11 11:12:39 -08:00
parent 7952727bb7
commit 494e0655dd
2 changed files with 20 additions and 8 deletions

View File

@ -57,9 +57,9 @@ func parseExprs(env []string) ([]expr, error) {
if matched == false {
return nil, fmt.Errorf("Value '%s' is invalid", parts[1])
}
exprs = append(exprs, expr{key: strings.ToLower(parts[0]), operator: i, value: strings.TrimLeft(parts[1], "~"), isSoft: isSoft(parts[1])})
exprs = append(exprs, expr{key: parts[0], operator: i, value: strings.TrimLeft(parts[1], "~"), isSoft: isSoft(parts[1])})
} else {
exprs = append(exprs, expr{key: strings.ToLower(parts[0]), operator: i})
exprs = append(exprs, expr{key: parts[0], operator: i})
}
found = true

View File

@ -24,28 +24,40 @@ func TestParseExprs(t *testing.T) {
assert.Error(t, err)
// Allow CAPS in key
_, err = parseExprs([]string{"NoDe==node1"})
exprs, err := parseExprs([]string{"NoDe==node1"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "NoDe")
assert.Equal(t, exprs[0].value, "node1")
// Allow dot in key
_, err = parseExprs([]string{"no.de==node1"})
exprs, err = parseExprs([]string{"no.de==node1"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "no.de")
assert.Equal(t, exprs[0].value, "node1")
// Allow leading underscore
_, err = parseExprs([]string{"_node==_node1"})
exprs, err = parseExprs([]string{"_node==_node1"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "_node")
assert.Equal(t, exprs[0].value, "_node1")
// Allow globbing
_, err = parseExprs([]string{"node==*node*"})
exprs, err = parseExprs([]string{"node==*node*"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "*node*")
// Allow regexp in value
_, err = parseExprs([]string{"node==/(?i)^[a-b]+c*(n|b)$/"})
exprs, err = parseExprs([]string{"node==/(?i)^[a-b]+c*(n|b)$/"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "/(?i)^[a-b]+c*(n|b)$/")
// Allow space in value
_, err = parseExprs([]string{"node==node 1"})
exprs, err = parseExprs([]string{"node==node 1"})
assert.NoError(t, err)
assert.Equal(t, exprs[0].key, "node")
assert.Equal(t, exprs[0].value, "node 1")
}
func TestMatch(t *testing.T) {