test for setcontainsany, and treat set_contains same as set_contains_all

This commit is contained in:
Preetha Appan
2018-07-18 19:10:18 -05:00
parent a236342caa
commit db7a8b691f
2 changed files with 11 additions and 3 deletions

View File

@@ -484,8 +484,8 @@ func checkConstraint(ctx Context, operand string, lVal, rVal interface{}) bool {
func checkAffinity(ctx Context, operand string, lVal, rVal interface{}) bool {
switch operand {
case structs.AffinitySetContainsAny:
return checkSetContainsAny(ctx, lVal, rVal)
case structs.AffinitySetContainsAll:
return checkSetContainsAny(lVal, rVal)
case structs.AffinitySetContainsAll, structs.ConstraintSetContains:
return checkSetContainsAll(ctx, lVal, rVal)
default:
return checkConstraint(ctx, operand, lVal, rVal)
@@ -628,7 +628,7 @@ func checkSetContainsAll(ctx Context, lVal, rVal interface{}) bool {
// checkSetContainsAny is used to see if the left hand side contains any
// values on the right hand side
func checkSetContainsAny(ctx Context, lVal, rVal interface{}) bool {
func checkSetContainsAny(lVal, rVal interface{}) bool {
// Ensure left-hand is string
lStr, ok := lVal.(string)
if !ok {

View File

@@ -1611,3 +1611,11 @@ func TestFeasibilityWrapper_JobEligible_TgEscaped(t *testing.T) {
t.Fatalf("bad: %v %v", e, ok)
}
}
func TestSetContainsAny(t *testing.T) {
require.True(t, checkSetContainsAny("a", "a"))
require.True(t, checkSetContainsAny("a,b", "a"))
require.True(t, checkSetContainsAny(" a,b ", "a "))
require.True(t, checkSetContainsAny("a", "a"))
require.False(t, checkSetContainsAny("b", "a"))
}