Fix filter errors

Prevent error messages from being output to stderr.
Return illegal token when a quoted string is invalid and
capture the error.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan
2020-01-08 18:07:50 -08:00
parent 0d276ece0e
commit 3af3a76026
5 changed files with 103 additions and 20 deletions

View File

@@ -272,6 +272,16 @@ func TestFilters(t *testing.T) {
input: "image~=,id?=?fbaq",
errString: `filters: parse error: [image~= >|,|< id?=?fbaq]: expected value or quoted`,
},
{
name: "FieldQuotedLiteralNotTerminated",
input: "labels.ns/key==value",
errString: `filters: parse error: [labels.ns >|/|< key==value]: quoted literal not terminated`,
},
{
name: "ValueQuotedLiteralNotTerminated",
input: "labels.key==/value",
errString: `filters: parse error: [labels.key== >|/|< value]: quoted literal not terminated`,
},
} {
t.Run(testcase.name, func(t *testing.T) {
filter, err := Parse(testcase.input)