Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
75f2efb5
Commit
75f2efb5
authored
Feb 25, 2015
by
Salvatore Dario Minonne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moving ParseSelector to Parse for labels only.
parent
00989f22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
68 additions
and
44 deletions
+68
-44
test.sh
hack/lib/test.sh
+1
-1
test-cmd.sh
hack/test-cmd.sh
+6
-6
resthandler.go
pkg/apiserver/resthandler.go
+1
-1
listwatch_test.go
pkg/client/cache/listwatch_test.go
+1
-1
client_test.go
pkg/client/client_test.go
+15
-1
request.go
pkg/client/request.go
+10
-1
request_test.go
pkg/client/request_test.go
+1
-1
builder.go
pkg/kubectl/resource/builder.go
+1
-1
selector.go
pkg/labels/selector.go
+0
-0
selector_test.go
pkg/labels/selector_test.go
+30
-29
registry_test.go
pkg/registry/generic/registry_test.go
+1
-1
etcd_test.go
pkg/registry/pod/etcd/etcd_test.go
+1
-1
No files found.
hack/lib/test.sh
View file @
75f2efb5
...
@@ -31,7 +31,7 @@ kube::test::get_object_assert() {
...
@@ -31,7 +31,7 @@ kube::test::get_object_assert() {
local
request
=
$2
local
request
=
$2
local
expected
=
$3
local
expected
=
$3
res
=
$(
kubectl get
"
${
kube_flags
[@]
}
"
$object
-o
template
-t
"
$request
"
)
res
=
$(
eval
kubectl get
"
${
kube_flags
[@]
}
"
$object
-o
template
-t
"
$request
"
)
if
[[
"
$res
"
=
~ ^
$expected$
]]
;
then
if
[[
"
$res
"
=
~ ^
$expected$
]]
;
then
echo
-n
${
green
}
echo
-n
${
green
}
...
...
hack/test-cmd.sh
View file @
75f2efb5
...
@@ -194,11 +194,11 @@ for version in "${kube_api_versions[@]}"; do
...
@@ -194,11 +194,11 @@ for version in "${kube_api_versions[@]}"; do
### Delete POD valid-pod with label
### Delete POD valid-pod with label
# Pre-condition: valid-pod POD is running
# Pre-condition: valid-pod POD is running
kube::test::get_object_assert
'pods -l name=valid-pod'
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
kube::test::get_object_assert
"pods -l'name in (valid-pod)'"
'{{range.items}}{{.$id_field}}:{{end}}'
'valid-pod:'
# Command
# Command
kubectl delete pods
-l
name
=
valid-pod
"
${
kube_flags
[@]
}
"
kubectl delete pods
-l
'name in (valid-pod)'
"
${
kube_flags
[@]
}
"
# Post-condition: no POD is running
# Post-condition: no POD is running
kube::test::get_object_assert
'pods -l name=valid-pod'
"{{range.items}}{{.
$id_field
}}:{{end}}"
''
kube::test::get_object_assert
"pods -l'name in (valid-pod)'"
'{{range.items}}{{.$id_field}}:{{end}}'
''
### Create POD valid-pod from JSON
### Create POD valid-pod from JSON
# Pre-condition: no POD is running
# Pre-condition: no POD is running
...
@@ -220,7 +220,7 @@ for version in "${kube_api_versions[@]}"; do
...
@@ -220,7 +220,7 @@ for version in "${kube_api_versions[@]}"; do
# Pre-condition: valid-pod POD is running
# Pre-condition: valid-pod POD is running
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
# Command
# Command
!
kubectl delete
--all
pods
-l
name
=
valid-pod
"
${
kube_flags
[@]
}
"
!
kubectl delete
--all
pods
-l
'name in (valid-pod)'
"
${
kube_flags
[@]
}
"
# Post-condition: valid-pod POD is running
# Post-condition: valid-pod POD is running
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
...
@@ -230,7 +230,7 @@ for version in "${kube_api_versions[@]}"; do
...
@@ -230,7 +230,7 @@ for version in "${kube_api_versions[@]}"; do
# Command
# Command
kubectl delete
--all
pods
"
${
kube_flags
[@]
}
"
# --all remove all the pods
kubectl delete
--all
pods
"
${
kube_flags
[@]
}
"
# --all remove all the pods
# Post-condition: no POD is running
# Post-condition: no POD is running
kube::test::get_object_assert
'pods -l name=valid-pod'
"{{range.items}}{{.
$id_field
}}:{{end}}"
''
kube::test::get_object_assert
"pods -l'name in (valid-pod)'"
'{{range.items}}{{.$id_field}}:{{end}}'
''
### Create two PODs
### Create two PODs
# Pre-condition: no POD is running
# Pre-condition: no POD is running
...
@@ -318,7 +318,7 @@ for version in "${kube_api_versions[@]}"; do
...
@@ -318,7 +318,7 @@ for version in "${kube_api_versions[@]}"; do
# Pre-condition: valid-pod POD is running
# Pre-condition: valid-pod POD is running
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
'valid-pod:'
# Command
# Command
kubectl delete pods
-l
name
=
valid-pod-super-sayan
"
${
kube_flags
[@]
}
"
kubectl delete pods
-l
'name in (valid-pod-super-sayan)'
"
${
kube_flags
[@]
}
"
# Post-condition: no POD is running
# Post-condition: no POD is running
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
''
kube::test::get_object_assert pods
"{{range.items}}{{.
$id_field
}}:{{end}}"
''
...
...
pkg/apiserver/resthandler.go
View file @
75f2efb5
...
@@ -81,7 +81,7 @@ func GetResource(r RESTGetter, ctxFn ContextFunc, namer ScopeNamer, codec runtim
...
@@ -81,7 +81,7 @@ func GetResource(r RESTGetter, ctxFn ContextFunc, namer ScopeNamer, codec runtim
}
}
func
parseSelectorQueryParams
(
query
url
.
Values
,
version
,
apiResource
string
)
(
label
,
field
labels
.
Selector
,
err
error
)
{
func
parseSelectorQueryParams
(
query
url
.
Values
,
version
,
apiResource
string
)
(
label
,
field
labels
.
Selector
,
err
error
)
{
label
,
err
=
labels
.
Parse
Selector
(
query
.
Get
(
"labels"
))
label
,
err
=
labels
.
Parse
(
query
.
Get
(
"labels"
))
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
nil
,
err
return
nil
,
nil
,
err
}
}
...
...
pkg/client/cache/listwatch_test.go
View file @
75f2efb5
...
@@ -30,7 +30,7 @@ import (
...
@@ -30,7 +30,7 @@ import (
)
)
func
parseSelectorOrDie
(
s
string
)
labels
.
Selector
{
func
parseSelectorOrDie
(
s
string
)
labels
.
Selector
{
selector
,
err
:=
labels
.
Parse
Selector
(
s
)
selector
,
err
:=
labels
.
Parse
(
s
)
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
...
...
pkg/client/client_test.go
View file @
75f2efb5
...
@@ -139,8 +139,10 @@ func (c *testClient) ValidateCommon(t *testing.T, err error) {
...
@@ -139,8 +139,10 @@ func (c *testClient) ValidateCommon(t *testing.T, err error) {
validator
,
ok
:=
c
.
QueryValidator
[
key
]
validator
,
ok
:=
c
.
QueryValidator
[
key
]
if
!
ok
{
if
!
ok
{
switch
key
{
switch
key
{
case
"labels"
,
"fields"
:
case
"labels"
:
validator
=
validateLabels
validator
=
validateLabels
case
"fields"
:
validator
=
validateFields
default
:
default
:
validator
=
func
(
a
,
b
string
)
bool
{
return
a
==
b
}
validator
=
func
(
a
,
b
string
)
bool
{
return
a
==
b
}
}
}
...
@@ -227,6 +229,18 @@ func TestListPods(t *testing.T) {
...
@@ -227,6 +229,18 @@ func TestListPods(t *testing.T) {
}
}
func
validateLabels
(
a
,
b
string
)
bool
{
func
validateLabels
(
a
,
b
string
)
bool
{
sA
,
eA
:=
labels
.
Parse
(
a
)
if
eA
!=
nil
{
return
false
}
sB
,
eB
:=
labels
.
Parse
(
b
)
if
eB
!=
nil
{
return
false
}
return
sA
.
String
()
==
sB
.
String
()
}
func
validateFields
(
a
,
b
string
)
bool
{
sA
,
_
:=
labels
.
ParseSelector
(
a
)
sA
,
_
:=
labels
.
ParseSelector
(
a
)
sB
,
_
:=
labels
.
ParseSelector
(
b
)
sB
,
_
:=
labels
.
ParseSelector
(
b
)
return
sA
.
String
()
==
sB
.
String
()
return
sA
.
String
()
==
sB
.
String
()
...
...
pkg/client/request.go
View file @
75f2efb5
...
@@ -236,7 +236,16 @@ func (r *Request) ParseSelectorParam(paramName, item string) *Request {
...
@@ -236,7 +236,16 @@ func (r *Request) ParseSelectorParam(paramName, item string) *Request {
if
r
.
err
!=
nil
{
if
r
.
err
!=
nil
{
return
r
return
r
}
}
sel
,
err
:=
labels
.
ParseSelector
(
item
)
var
sel
labels
.
Selector
var
err
error
switch
paramName
{
case
"labels"
:
sel
,
err
=
labels
.
Parse
(
item
)
case
"fields"
:
sel
,
err
=
labels
.
ParseSelector
(
item
)
default
:
err
=
fmt
.
Errorf
(
"unknown parameter name '%s'"
,
paramName
)
}
if
err
!=
nil
{
if
err
!=
nil
{
r
.
err
=
err
r
.
err
=
err
return
r
return
r
...
...
pkg/client/request_test.go
View file @
75f2efb5
...
@@ -142,7 +142,7 @@ func TestRequestSetTwiceError(t *testing.T) {
...
@@ -142,7 +142,7 @@ func TestRequestSetTwiceError(t *testing.T) {
}
}
func
TestRequestParseSelectorParam
(
t
*
testing
.
T
)
{
func
TestRequestParseSelectorParam
(
t
*
testing
.
T
)
{
r
:=
(
&
Request
{})
.
ParseSelectorParam
(
"foo"
,
"a"
)
r
:=
(
&
Request
{})
.
ParseSelectorParam
(
"foo"
,
"a
=
"
)
if
r
.
err
==
nil
||
r
.
params
!=
nil
{
if
r
.
err
==
nil
||
r
.
params
!=
nil
{
t
.
Errorf
(
"should have set err and left params nil: %#v"
,
r
)
t
.
Errorf
(
"should have set err and left params nil: %#v"
,
r
)
}
}
...
...
pkg/kubectl/resource/builder.go
View file @
75f2efb5
...
@@ -164,7 +164,7 @@ func (b *Builder) ResourceTypes(types ...string) *Builder {
...
@@ -164,7 +164,7 @@ func (b *Builder) ResourceTypes(types ...string) *Builder {
// This will not affect files loaded from disk or URL. If the parameter is empty it is
// This will not affect files loaded from disk or URL. If the parameter is empty it is
// a no-op - to select all resources invoke `b.Selector(labels.Everything)`.
// a no-op - to select all resources invoke `b.Selector(labels.Everything)`.
func
(
b
*
Builder
)
SelectorParam
(
s
string
)
*
Builder
{
func
(
b
*
Builder
)
SelectorParam
(
s
string
)
*
Builder
{
selector
,
err
:=
labels
.
Parse
Selector
(
s
)
selector
,
err
:=
labels
.
Parse
(
s
)
if
err
!=
nil
{
if
err
!=
nil
{
b
.
errs
=
append
(
b
.
errs
,
fmt
.
Errorf
(
"the provided selector %q is not valid: %v"
,
s
,
err
))
b
.
errs
=
append
(
b
.
errs
,
fmt
.
Errorf
(
"the provided selector %q is not valid: %v"
,
s
,
err
))
return
b
return
b
...
...
pkg/labels/selector.go
View file @
75f2efb5
This diff is collapsed.
Click to expand it.
pkg/labels/selector_test.go
View file @
75f2efb5
...
@@ -302,17 +302,17 @@ func TestLexer(t *testing.T) {
...
@@ -302,17 +302,17 @@ func TestLexer(t *testing.T) {
s
string
s
string
t
Token
t
Token
}{
}{
{
""
,
E
OS
},
{
""
,
E
ndOfStringToken
},
{
","
,
C
OMMA
},
{
","
,
C
ommaToken
},
{
"notin"
,
N
OTIN
},
{
"notin"
,
N
otInToken
},
{
"in"
,
I
N
},
{
"in"
,
I
nToken
},
{
"="
,
E
QUAL
},
{
"="
,
E
qualsToken
},
{
"=="
,
EEQUAL
},
{
"=="
,
DoubleEqualsToken
},
{
"!="
,
N
EQUAL
},
{
"!="
,
N
otEqualsToken
},
{
"("
,
O
PAR
},
{
"("
,
O
penParToken
},
{
")"
,
C
PAR
},
{
")"
,
C
losedParToken
},
{
"||"
,
I
DENTIFIER
},
{
"||"
,
I
dentifierToken
},
{
"!"
,
E
RROR
},
{
"!"
,
E
rrorToken
},
}
}
for
_
,
v
:=
range
testcases
{
for
_
,
v
:=
range
testcases
{
l
:=
&
Lexer
{
s
:
v
.
s
,
pos
:
0
}
l
:=
&
Lexer
{
s
:
v
.
s
,
pos
:
0
}
...
@@ -320,7 +320,7 @@ func TestLexer(t *testing.T) {
...
@@ -320,7 +320,7 @@ func TestLexer(t *testing.T) {
if
token
!=
v
.
t
{
if
token
!=
v
.
t
{
t
.
Errorf
(
"Got %d it should be %d for '%s'"
,
token
,
v
.
t
,
v
.
s
)
t
.
Errorf
(
"Got %d it should be %d for '%s'"
,
token
,
v
.
t
,
v
.
s
)
}
}
if
v
.
t
!=
E
RROR
&&
lit
!=
v
.
s
{
if
v
.
t
!=
E
rrorToken
&&
lit
!=
v
.
s
{
t
.
Errorf
(
"Got '%s' it should be '%s'"
,
lit
,
v
.
s
)
t
.
Errorf
(
"Got '%s' it should be '%s'"
,
lit
,
v
.
s
)
}
}
}
}
...
@@ -339,13 +339,13 @@ func TestLexerSequence(t *testing.T) {
...
@@ -339,13 +339,13 @@ func TestLexerSequence(t *testing.T) {
s
string
s
string
t
[]
Token
t
[]
Token
}{
}{
{
"key in ( value )"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
IDENTIFIER
,
CPAR
}},
{
"key in ( value )"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
IdentifierToken
,
ClosedParToken
}},
{
"key notin ( value )"
,
[]
Token
{
I
DENTIFIER
,
NOTIN
,
OPAR
,
IDENTIFIER
,
CPAR
}},
{
"key notin ( value )"
,
[]
Token
{
I
dentifierToken
,
NotInToken
,
OpenParToken
,
IdentifierToken
,
ClosedParToken
}},
{
"key in ( value1, value2 )"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
IDENTIFIER
,
COMMA
,
IDENTIFIER
,
CPAR
}},
{
"key in ( value1, value2 )"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
IdentifierToken
,
CommaToken
,
IdentifierToken
,
ClosedParToken
}},
{
"key"
,
[]
Token
{
I
DENTIFIER
}},
{
"key"
,
[]
Token
{
I
dentifierToken
}},
{
"()"
,
[]
Token
{
O
PAR
,
CPAR
}},
{
"()"
,
[]
Token
{
O
penParToken
,
ClosedParToken
}},
{
"x in (),y"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
CPAR
,
COMMA
,
IDENTIFIER
}},
{
"x in (),y"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
ClosedParToken
,
CommaToken
,
IdentifierToken
}},
{
"== != (), = notin"
,
[]
Token
{
EEQUAL
,
NEQUAL
,
OPAR
,
CPAR
,
COMMA
,
EQUAL
,
NOTIN
}},
{
"== != (), = notin"
,
[]
Token
{
DoubleEqualsToken
,
NotEqualsToken
,
OpenParToken
,
ClosedParToken
,
CommaToken
,
EqualsToken
,
NotInToken
}},
}
}
for
_
,
v
:=
range
testcases
{
for
_
,
v
:=
range
testcases
{
var
literals
[]
string
var
literals
[]
string
...
@@ -353,7 +353,7 @@ func TestLexerSequence(t *testing.T) {
...
@@ -353,7 +353,7 @@ func TestLexerSequence(t *testing.T) {
l
:=
&
Lexer
{
s
:
v
.
s
,
pos
:
0
}
l
:=
&
Lexer
{
s
:
v
.
s
,
pos
:
0
}
for
{
for
{
token
,
lit
:=
l
.
Lex
()
token
,
lit
:=
l
.
Lex
()
if
token
==
E
OS
{
if
token
==
E
ndOfStringToken
{
break
break
}
}
tokens
=
append
(
tokens
,
token
)
tokens
=
append
(
tokens
,
token
)
...
@@ -374,14 +374,14 @@ func TestParserLookahead(t *testing.T) {
...
@@ -374,14 +374,14 @@ func TestParserLookahead(t *testing.T) {
s
string
s
string
t
[]
Token
t
[]
Token
}{
}{
{
"key in ( value )"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
IDENTIFIER
,
CPAR
,
EOS
}},
{
"key in ( value )"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
IdentifierToken
,
ClosedParToken
,
EndOfStringToken
}},
{
"key notin ( value )"
,
[]
Token
{
I
DENTIFIER
,
NOTIN
,
OPAR
,
IDENTIFIER
,
CPAR
,
EOS
}},
{
"key notin ( value )"
,
[]
Token
{
I
dentifierToken
,
NotInToken
,
OpenParToken
,
IdentifierToken
,
ClosedParToken
,
EndOfStringToken
}},
{
"key in ( value1, value2 )"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
IDENTIFIER
,
COMMA
,
IDENTIFIER
,
CPAR
,
EOS
}},
{
"key in ( value1, value2 )"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
IdentifierToken
,
CommaToken
,
IdentifierToken
,
ClosedParToken
,
EndOfStringToken
}},
{
"key"
,
[]
Token
{
I
DENTIFIER
,
EOS
}},
{
"key"
,
[]
Token
{
I
dentifierToken
,
EndOfStringToken
}},
{
"()"
,
[]
Token
{
O
PAR
,
CPAR
,
EOS
}},
{
"()"
,
[]
Token
{
O
penParToken
,
ClosedParToken
,
EndOfStringToken
}},
{
""
,
[]
Token
{
E
OS
}},
{
""
,
[]
Token
{
E
ndOfStringToken
}},
{
"x in (),y"
,
[]
Token
{
I
DENTIFIER
,
IN
,
OPAR
,
CPAR
,
COMMA
,
IDENTIFIER
,
EOS
}},
{
"x in (),y"
,
[]
Token
{
I
dentifierToken
,
InToken
,
OpenParToken
,
ClosedParToken
,
CommaToken
,
IdentifierToken
,
EndOfStringToken
}},
{
"== != (), = notin"
,
[]
Token
{
EEQUAL
,
NEQUAL
,
OPAR
,
CPAR
,
COMMA
,
EQUAL
,
NOTIN
,
EOS
}},
{
"== != (), = notin"
,
[]
Token
{
DoubleEqualsToken
,
NotEqualsToken
,
OpenParToken
,
ClosedParToken
,
CommaToken
,
EqualsToken
,
NotInToken
,
EndOfStringToken
}},
}
}
for
_
,
v
:=
range
testcases
{
for
_
,
v
:=
range
testcases
{
p
:=
&
Parser
{
l
:
&
Lexer
{
s
:
v
.
s
,
pos
:
0
},
position
:
0
}
p
:=
&
Parser
{
l
:
&
Lexer
{
s
:
v
.
s
,
pos
:
0
},
position
:
0
}
...
@@ -393,7 +393,7 @@ func TestParserLookahead(t *testing.T) {
...
@@ -393,7 +393,7 @@ func TestParserLookahead(t *testing.T) {
token
,
lit
:=
p
.
lookahead
(
KeyAndOperator
)
token
,
lit
:=
p
.
lookahead
(
KeyAndOperator
)
token2
,
lit2
:=
p
.
consume
(
KeyAndOperator
)
token2
,
lit2
:=
p
.
consume
(
KeyAndOperator
)
if
token
==
E
OS
{
if
token
==
E
ndOfStringToken
{
break
break
}
}
if
token
!=
token2
||
lit
!=
lit2
{
if
token
!=
token2
||
lit
!=
lit2
{
...
@@ -597,6 +597,7 @@ func getRequirement(key string, op Operator, vals util.StringSet, t *testing.T)
...
@@ -597,6 +597,7 @@ func getRequirement(key string, op Operator, vals util.StringSet, t *testing.T)
req
,
err
:=
NewRequirement
(
key
,
op
,
vals
)
req
,
err
:=
NewRequirement
(
key
,
op
,
vals
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"NewRequirement(%v, %v, %v) resulted in error:%v"
,
key
,
op
,
vals
,
err
)
t
.
Errorf
(
"NewRequirement(%v, %v, %v) resulted in error:%v"
,
key
,
op
,
vals
,
err
)
return
Requirement
{}
}
}
return
*
req
return
*
req
}
}
pkg/registry/generic/registry_test.go
View file @
75f2efb5
...
@@ -73,7 +73,7 @@ func TestSelectionPredicate(t *testing.T) {
...
@@ -73,7 +73,7 @@ func TestSelectionPredicate(t *testing.T) {
}
}
for
name
,
item
:=
range
table
{
for
name
,
item
:=
range
table
{
parsedLabel
,
err
:=
labels
.
Parse
Selector
(
item
.
labelSelector
)
parsedLabel
,
err
:=
labels
.
Parse
(
item
.
labelSelector
)
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
...
...
pkg/registry/pod/etcd/etcd_test.go
View file @
75f2efb5
...
@@ -351,7 +351,7 @@ func TestListPodListSelection(t *testing.T) {
...
@@ -351,7 +351,7 @@ func TestListPodListSelection(t *testing.T) {
}
}
for
index
,
item
:=
range
table
{
for
index
,
item
:=
range
table
{
label
,
err
:=
labels
.
Parse
Selector
(
item
.
label
)
label
,
err
:=
labels
.
Parse
(
item
.
label
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
continue
continue
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment