From db7a8b691fe0dbf6673da9a3cd5c075b9d9e79e6 Mon Sep 17 00:00:00 2001 From: Preetha Appan Date: Wed, 18 Jul 2018 19:10:18 -0500 Subject: [PATCH] test for setcontainsany, and treat set_contains same as set_contains_all --- scheduler/feasible.go | 6 +++--- scheduler/feasible_test.go | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/scheduler/feasible.go b/scheduler/feasible.go index 9fa42d592..78e98f368 100644 --- a/scheduler/feasible.go +++ b/scheduler/feasible.go @@ -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 { diff --git a/scheduler/feasible_test.go b/scheduler/feasible_test.go index 7917077f7..9346d0ba1 100644 --- a/scheduler/feasible_test.go +++ b/scheduler/feasible_test.go @@ -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")) +}