Update KV ignore whitespace before and after =
(#2236)
* Update KV ignore whitespace before and after `=` * Update helpers.go Don't need whitespace infront of KEY * Add some tests to ensure edge cases * Ensure quoted and unquoted values act the same
This commit is contained in:
parent
6720d89845
commit
4fbc3402fb
2 changed files with 13 additions and 1 deletions
|
@ -1399,6 +1399,18 @@ func TestParseKv(t *testing.T) {
|
|||
expected: map[string]string{"foo": "bar=toto"},
|
||||
expr: `ParseKV(value, out, "a")`,
|
||||
},
|
||||
{
|
||||
name: "ParseKV() test: empty unquoted string",
|
||||
value: `foo= bar=toto`,
|
||||
expected: map[string]string{"bar": "toto", "foo": ""},
|
||||
expr: `ParseKV(value, out, "a")`,
|
||||
},
|
||||
{
|
||||
name: "ParseKV() test: empty quoted string ",
|
||||
value: `foo="" bar=toto`,
|
||||
expected: map[string]string{"bar": "toto", "foo": ""},
|
||||
expr: `ParseKV(value, out, "a")`,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
|
|
|
@ -51,7 +51,7 @@ var dbClient *database.Client
|
|||
|
||||
var exprFunctionOptions []expr.Option
|
||||
|
||||
var keyValuePattern = regexp.MustCompile(`\s*(?P<key>[^=\s]+)\s*=\s*(?:"(?P<quoted_value>[^"\\]*(?:\\.[^"\\]*)*)"|(?P<value>[^=\s]+))`)
|
||||
var keyValuePattern = regexp.MustCompile(`(?P<key>[^=\s]+)=(?:"(?P<quoted_value>[^"\\]*(?:\\.[^"\\]*)*)"|(?P<value>[^=\s]+)|\s*)`)
|
||||
|
||||
func GetExprOptions(ctx map[string]interface{}) []expr.Option {
|
||||
ret := []expr.Option{}
|
||||
|
|
Loading…
Reference in a new issue